[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 <?php 2 3 /* 4 * This file is part of the Symfony package. 5 * 6 * (c) Fabien Potencier <[email protected]> 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12 namespace Symfony\Component\VarDumper\Caster; 13 14 use RdKafka\Conf; 15 use RdKafka\Exception as RdKafkaException; 16 use RdKafka\KafkaConsumer; 17 use RdKafka\Message; 18 use RdKafka\Metadata\Broker as BrokerMetadata; 19 use RdKafka\Metadata\Collection as CollectionMetadata; 20 use RdKafka\Metadata\Partition as PartitionMetadata; 21 use RdKafka\Metadata\Topic as TopicMetadata; 22 use RdKafka\Topic; 23 use RdKafka\TopicConf; 24 use RdKafka\TopicPartition; 25 use Symfony\Component\VarDumper\Cloner\Stub; 26 27 /** 28 * Casts RdKafka related classes to array representation. 29 * 30 * @author Romain Neutron <[email protected]> 31 */ 32 class RdKafkaCaster 33 { 34 public static function castKafkaConsumer(KafkaConsumer $c, array $a, Stub $stub, bool $isNested) 35 { 36 $prefix = Caster::PREFIX_VIRTUAL; 37 38 try { 39 $assignment = $c->getAssignment(); 40 } catch (RdKafkaException $e) { 41 $assignment = []; 42 } 43 44 $a += [ 45 $prefix.'subscription' => $c->getSubscription(), 46 $prefix.'assignment' => $assignment, 47 ]; 48 49 $a += self::extractMetadata($c); 50 51 return $a; 52 } 53 54 public static function castTopic(Topic $c, array $a, Stub $stub, bool $isNested) 55 { 56 $prefix = Caster::PREFIX_VIRTUAL; 57 58 $a += [ 59 $prefix.'name' => $c->getName(), 60 ]; 61 62 return $a; 63 } 64 65 public static function castTopicPartition(TopicPartition $c, array $a) 66 { 67 $prefix = Caster::PREFIX_VIRTUAL; 68 69 $a += [ 70 $prefix.'offset' => $c->getOffset(), 71 $prefix.'partition' => $c->getPartition(), 72 $prefix.'topic' => $c->getTopic(), 73 ]; 74 75 return $a; 76 } 77 78 public static function castMessage(Message $c, array $a, Stub $stub, bool $isNested) 79 { 80 $prefix = Caster::PREFIX_VIRTUAL; 81 82 $a += [ 83 $prefix.'errstr' => $c->errstr(), 84 ]; 85 86 return $a; 87 } 88 89 public static function castConf(Conf $c, array $a, Stub $stub, bool $isNested) 90 { 91 $prefix = Caster::PREFIX_VIRTUAL; 92 93 foreach ($c->dump() as $key => $value) { 94 $a[$prefix.$key] = $value; 95 } 96 97 return $a; 98 } 99 100 public static function castTopicConf(TopicConf $c, array $a, Stub $stub, bool $isNested) 101 { 102 $prefix = Caster::PREFIX_VIRTUAL; 103 104 foreach ($c->dump() as $key => $value) { 105 $a[$prefix.$key] = $value; 106 } 107 108 return $a; 109 } 110 111 public static function castRdKafka(\RdKafka $c, array $a, Stub $stub, bool $isNested) 112 { 113 $prefix = Caster::PREFIX_VIRTUAL; 114 115 $a += [ 116 $prefix.'out_q_len' => $c->getOutQLen(), 117 ]; 118 119 $a += self::extractMetadata($c); 120 121 return $a; 122 } 123 124 public static function castCollectionMetadata(CollectionMetadata $c, array $a, Stub $stub, bool $isNested) 125 { 126 $a += iterator_to_array($c); 127 128 return $a; 129 } 130 131 public static function castTopicMetadata(TopicMetadata $c, array $a, Stub $stub, bool $isNested) 132 { 133 $prefix = Caster::PREFIX_VIRTUAL; 134 135 $a += [ 136 $prefix.'name' => $c->getTopic(), 137 $prefix.'partitions' => $c->getPartitions(), 138 ]; 139 140 return $a; 141 } 142 143 public static function castPartitionMetadata(PartitionMetadata $c, array $a, Stub $stub, bool $isNested) 144 { 145 $prefix = Caster::PREFIX_VIRTUAL; 146 147 $a += [ 148 $prefix.'id' => $c->getId(), 149 $prefix.'err' => $c->getErr(), 150 $prefix.'leader' => $c->getLeader(), 151 ]; 152 153 return $a; 154 } 155 156 public static function castBrokerMetadata(BrokerMetadata $c, array $a, Stub $stub, bool $isNested) 157 { 158 $prefix = Caster::PREFIX_VIRTUAL; 159 160 $a += [ 161 $prefix.'id' => $c->getId(), 162 $prefix.'host' => $c->getHost(), 163 $prefix.'port' => $c->getPort(), 164 ]; 165 166 return $a; 167 } 168 169 private static function extractMetadata($c) 170 { 171 $prefix = Caster::PREFIX_VIRTUAL; 172 173 try { 174 $m = $c->getMetadata(true, null, 500); 175 } catch (RdKafkaException $e) { 176 return []; 177 } 178 179 return [ 180 $prefix.'orig_broker_id' => $m->getOrigBrokerId(), 181 $prefix.'orig_broker_name' => $m->getOrigBrokerName(), 182 $prefix.'brokers' => $m->getBrokers(), 183 $prefix.'topics' => $m->getTopics(), 184 ]; 185 } 186 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |