protected function producePartitionPair(string $data, int $version): array
    {
        $offset          = 0;
        $partitionId     = self::unpack(self::BIT_B32, substr($data, $offset, 4));
        $offset         += 4;
        $errorCode       = self::unpack(self::BIT_B16_SIGNED, substr($data, $offset, 2));
        $offset         += 2;
        $partitionOffset = self::unpack(self::BIT_B64, substr($data, $offset, 8));
        $offset         += 8;
        $timestamp       = 0;

        if ($version === self::API_VERSION2) {
            $timestamp = self::unpack(self::BIT_B64, substr($data, $offset, 8));
            $offset   += 8;
        }

        return [
            'length' => $offset,
            'data'   => [
                'partition' => $partitionId,
                'errorCode' => $errorCode,
                'offset'    => $offset,
                'timestamp' => $timestamp,
            ],
        ];
    }
protected function producePartitionPair(string $data, int $version): array
    {
        $offset          = 0;
        $partitionId     = self::unpack(self::BIT_B32, substr($data, $offset, 4));
        $offset         += 4;
        $errorCode       = self::unpack(self::BIT_B16_SIGNED, substr($data, $offset, 2));
        $offset         += 2;
        $partitionOffset = self::unpack(self::BIT_B64, substr($data, $offset, 8));
        $offset         += 8;
        $timestamp       = 0;

        if ($version === self::API_VERSION2) {
            $timestamp = self::unpack(self::BIT_B64, substr($data, $offset, 8));
            $offset   += 8;
        }

        return [
            'length' => $offset,
            'data'   => [
                'partition' => $partitionId,
                'errorCode' => $errorCode,
                'offset'    => $offset,
                'timestamp' => $timestamp,
            ],
        ];
    }
protected function producePartitionPair ( string $ data , int $ version ) : array { $ offset = 0 ; $ partitionId = self :: unpack ( self :: BIT_B32 , substr ( $ data , $ offset , 4 ) ) ; $ offset += 4 ; $ errorCode = self :: unpack ( self :: BIT_B16_SIGNED , substr ( $ data , $ offset , 2 ) ) ; $ offset += 2 ; $ partitionOffset = self :: unpack ( self :: BIT_B64 , substr ( $ data , $ offset , 8 ) ) ; $ offset += 8 ; $ timestamp = 0 ; if ( $ version === self :: API_VERSION2 ) { $ timestamp = self :: unpack ( self :: BIT_B64 , substr ( $ data , $ offset , 8 ) ) ; $ offset += 8 ; } return [ 'length' => $ offset , 'data' => [ 'partition' => $ partitionId , 'errorCode' => $ errorCode , 'offset' => $ offset , 'timestamp' => $ timestamp , ] , ] ; }
decode produce partition pair response

@return mixed[]

@throws ProtocolException
decode produce partition pair response