Вход Регистрация
Файл: vendor/symfony/var-dumper/Caster/RdKafkaCaster.php
Строк: 118
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentVarDumperCaster;

use 
RdKafkaConf;
use 
RdKafkaException as RdKafkaException;
use 
RdKafkaKafkaConsumer;
use 
RdKafkaMessage;
use 
RdKafkaMetadataBroker as BrokerMetadata;
use 
RdKafkaMetadataCollection as CollectionMetadata;
use 
RdKafkaMetadataPartition as PartitionMetadata;
use 
RdKafkaMetadataTopic as TopicMetadata;
use 
RdKafkaTopic;
use 
RdKafkaTopicConf;
use 
RdKafkaTopicPartition;
use 
SymfonyComponentVarDumperClonerStub;

/**
 * Casts RdKafka related classes to array representation.
 *
 * @author Romain Neutron <imprec@gmail.com>
 */
class RdKafkaCaster
{
    
/**
     * @return array
     */
    
public static function castKafkaConsumer(KafkaConsumer $c, array $aStub $stubbool $isNested)
    {
        
$prefix Caster::PREFIX_VIRTUAL;

        try {
            
$assignment $c->getAssignment();
        } catch (
RdKafkaException) {
            
$assignment = [];
        }

        
$a += [
            
$prefix.'subscription' => $c->getSubscription(),
            
$prefix.'assignment' => $assignment,
        ];

        
$a += self::extractMetadata($c);

        return 
$a;
    }

    
/**
     * @return array
     */
    
public static function castTopic(Topic $c, array $aStub $stubbool $isNested)
    {
        
$prefix Caster::PREFIX_VIRTUAL;

        
$a += [
            
$prefix.'name' => $c->getName(),
        ];

        return 
$a;
    }

    
/**
     * @return array
     */
    
public static function castTopicPartition(TopicPartition $c, array $a)
    {
        
$prefix Caster::PREFIX_VIRTUAL;

        
$a += [
            
$prefix.'offset' => $c->getOffset(),
            
$prefix.'partition' => $c->getPartition(),
            
$prefix.'topic' => $c->getTopic(),
        ];

        return 
$a;
    }

    
/**
     * @return array
     */
    
public static function castMessage(Message $c, array $aStub $stubbool $isNested)
    {
        
$prefix Caster::PREFIX_VIRTUAL;

        
$a += [
            
$prefix.'errstr' => $c->errstr(),
        ];

        return 
$a;
    }

    
/**
     * @return array
     */
    
public static function castConf(Conf $c, array $aStub $stubbool $isNested)
    {
        
$prefix Caster::PREFIX_VIRTUAL;

        foreach (
$c->dump() as $key => $value) {
            
$a[$prefix.$key] = $value;
        }

        return 
$a;
    }

    
/**
     * @return array
     */
    
public static function castTopicConf(TopicConf $c, array $aStub $stubbool $isNested)
    {
        
$prefix Caster::PREFIX_VIRTUAL;

        foreach (
$c->dump() as $key => $value) {
            
$a[$prefix.$key] = $value;
        }

        return 
$a;
    }

    
/**
     * @return array
     */
    
public static function castRdKafka(RdKafka $c, array $aStub $stubbool $isNested)
    {
        
$prefix Caster::PREFIX_VIRTUAL;

        
$a += [
            
$prefix.'out_q_len' => $c->getOutQLen(),
        ];

        
$a += self::extractMetadata($c);

        return 
$a;
    }

    
/**
     * @return array
     */
    
public static function castCollectionMetadata(CollectionMetadata $c, array $aStub $stubbool $isNested)
    {
        
$a += iterator_to_array($c);

        return 
$a;
    }

    
/**
     * @return array
     */
    
public static function castTopicMetadata(TopicMetadata $c, array $aStub $stubbool $isNested)
    {
        
$prefix Caster::PREFIX_VIRTUAL;

        
$a += [
            
$prefix.'name' => $c->getTopic(),
            
$prefix.'partitions' => $c->getPartitions(),
        ];

        return 
$a;
    }

    
/**
     * @return array
     */
    
public static function castPartitionMetadata(PartitionMetadata $c, array $aStub $stubbool $isNested)
    {
        
$prefix Caster::PREFIX_VIRTUAL;

        
$a += [
            
$prefix.'id' => $c->getId(),
            
$prefix.'err' => $c->getErr(),
            
$prefix.'leader' => $c->getLeader(),
        ];

        return 
$a;
    }

    
/**
     * @return array
     */
    
public static function castBrokerMetadata(BrokerMetadata $c, array $aStub $stubbool $isNested)
    {
        
$prefix Caster::PREFIX_VIRTUAL;

        
$a += [
            
$prefix.'id' => $c->getId(),
            
$prefix.'host' => $c->getHost(),
            
$prefix.'port' => $c->getPort(),
        ];

        return 
$a;
    }

    
/**
     * @return array
     */
    
private static function extractMetadata(KafkaConsumer|RdKafka $c)
    {
        
$prefix Caster::PREFIX_VIRTUAL;

        try {
            
$m $c->getMetadata(truenull500);
        } catch (
RdKafkaException) {
            return [];
        }

        return [
            
$prefix.'orig_broker_id' => $m->getOrigBrokerId(),
            
$prefix.'orig_broker_name' => $m->getOrigBrokerName(),
            
$prefix.'brokers' => $m->getBrokers(),
            
$prefix.'topics' => $m->getTopics(),
        ];
    }
}
Онлайн: 1
Реклама