MCPcopy Create free account
hub / github.com/apache/thrift / _readList

Method _readList

lib/php/lib/Base/TBase.php:137–190  ·  view source on GitHub ↗
(&$var, $spec, $input, $set = false)

Source from the content-addressed store, hash-verified

135 }
136
137 private function _readList(&$var, $spec, $input, $set = false)
138 {
139 $xfer = 0;
140 $etype = $spec['etype'];
141 $eread = $vread = null;
142 if (isset(TBase::$tmethod[$etype])) {
143 $eread = 'read' . TBase::$tmethod[$etype];
144 } else {
145 $espec = $spec['elem'];
146 }
147 $var = array();
148 $_etype = $size = 0;
149 if ($set) {
150 $xfer += $input->readSetBegin($_etype, $size);
151 } else {
152 $xfer += $input->readListBegin($_etype, $size);
153 }
154 for ($i = 0; $i < $size; ++$i) {
155 $elem = null;
156 if ($eread !== null) {
157 $xfer += $input->$eread($elem);
158 } else {
159 $espec = $spec['elem'];
160 switch ($etype) {
161 case TType::STRUCT:
162 $class = $espec['class'];
163 $elem = new $class();
164 $xfer += $elem->read($input);
165 break;
166 case TType::MAP:
167 $xfer += $this->_readMap($elem, $espec, $input);
168 break;
169 case TType::LST:
170 $xfer += $this->_readList($elem, $espec, $input, false);
171 break;
172 case TType::SET:
173 $xfer += $this->_readList($elem, $espec, $input, true);
174 break;
175 }
176 }
177 if ($set) {
178 $var[$elem] = true;
179 } else {
180 $var [] = $elem;
181 }
182 }
183 if ($set) {
184 $xfer += $input->readSetEnd();
185 } else {
186 $xfer += $input->readListEnd();
187 }
188
189 return $xfer;
190 }
191
192 protected function _read($class, $spec, $input)
193 {

Callers 2

_readMapMethod · 0.95
_readMethod · 0.95

Calls 6

_readMapMethod · 0.95
readSetBeginMethod · 0.65
readListBeginMethod · 0.65
readMethod · 0.65
readSetEndMethod · 0.65
readListEndMethod · 0.65

Tested by

no test coverage detected