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

Method _write

lib/php/lib/Base/TBase.php:348–383  ·  view source on GitHub ↗
($class, $spec, $output)

Source from the content-addressed store, hash-verified

346 }
347
348 protected function _write($class, $spec, $output)
349 {
350 $xfer = 0;
351 $xfer += $output->writeStructBegin($class);
352 foreach ($spec as $fid => $fspec) {
353 $var = $fspec['var'];
354 if ($this->$var !== null) {
355 $ftype = $fspec['type'];
356 $xfer += $output->writeFieldBegin($var, $ftype, $fid);
357 if (isset(TBase::$tmethod[$ftype])) {
358 $func = 'write' . TBase::$tmethod[$ftype];
359 $xfer += $output->$func($this->$var);
360 } else {
361 switch ($ftype) {
362 case TType::STRUCT:
363 $xfer += $this->$var->write($output);
364 break;
365 case TType::MAP:
366 $xfer += $this->_writeMap($this->$var, $fspec, $output);
367 break;
368 case TType::LST:
369 $xfer += $this->_writeList($this->$var, $fspec, $output, false);
370 break;
371 case TType::SET:
372 $xfer += $this->_writeList($this->$var, $fspec, $output, true);
373 break;
374 }
375 }
376 $xfer += $output->writeFieldEnd();
377 }
378 }
379 $xfer += $output->writeFieldStop();
380 $xfer += $output->writeStructEnd();
381
382 return $xfer;
383 }
384}

Callers

nothing calls this directly

Calls 8

_writeMapMethod · 0.95
_writeListMethod · 0.95
writeStructBeginMethod · 0.65
writeFieldBeginMethod · 0.65
writeMethod · 0.65
writeFieldEndMethod · 0.65
writeFieldStopMethod · 0.65
writeStructEndMethod · 0.65

Tested by

no test coverage detected