public function read(TProtocol $input) { $xfer = 0; $fname = null; $ftype = 0; $fid = 0; $xfer += $input->readStructBegin($fname); while (true) { $xfer += $input->readFieldBegin($fname, $ftype, $fid); if ($ftype == TType::STOP) { break; } if (!$fid && $fname !== null) { if (isset(self::$_TFIELDMAP[$fname])) { $fid = self::$_TFIELDMAP[$fname]; $ftype = self::$_TSPEC[$fid]['type']; } } switch ($fid) { case 1: if ($ftype == TType::I64) { $xfer += $input->readI64($this->id); } else { $xfer += $input->skip($ftype); } break; case 2: if ($ftype == TType::STRING) { $xfer += $input->readString($this->name); } else { $xfer += $input->skip($ftype); } break; case 3: if ($ftype == TType::I16) { $xfer += $input->readI16($this->age); } else { $xfer += $input->skip($ftype); } break; case 4: if ($ftype == TType::STRING) { $xfer += $input->readString($this->address); } else { $xfer += $input->skip($ftype); } break; case 5: if ($ftype == TType::STRUCT) { $this->favoriteColor = new Color(); $xfer += $this->favoriteColor->read($input); } else { $xfer += $input->skip($ftype); } break; case 6: if ($ftype == TType::SET) { $this->friends = array(); $_size0 = 0; $_etype3 = 0; $xfer += $input->readSetBegin($_etype3, $_size0); for ($_i4 = 0; $_size0 === null || $_i4 < $_size0; ++$_i4) { if ($_size0 === null && !$input->readSetHasNext()) { break; } $elem5 = null; $xfer += $input->readI64($elem5); $this->friends[$elem5] = true; } $xfer += $input->readSetEnd(); } else { $xfer += $input->skip($ftype); } break; case 7: if ($ftype == TType::I64) { $xfer += $input->readI64($this->bestFriend); } else { $xfer += $input->skip($ftype); } break; case 8: if ($ftype == TType::MAP) { $this->petNames = array(); $_size6 = 0; $_ktype7 = 0; $_vtype8 = 0; $xfer += $input->readMapBegin($_ktype7, $_vtype8, $_size6); for ($_i10 = 0; $_size6 === null || $_i10 < $_size6; ++$_i10) { if ($_size6 === null && !$input->readMapHasNext()) { break; } $key11 = 0; $val12 = ''; $xfer += $input->readI32($key11); $xfer += $input->readString($val12); $this->petNames[$key11] = $val12; } $xfer += $input->readMapEnd(); } else { $xfer += $input->skip($ftype); } break; case 9: if ($ftype == TType::I32) { $xfer += $input->readI32($this->afraidOfAnimal); } else { $xfer += $input->skip($ftype); } break; case 10: if ($ftype == TType::LST) { $this->vehicles = array(); $_size13 = 0; $_etype16 = 0; $xfer += $input->readListBegin($_etype16, $_size13); for ($_i17 = 0; $_size13 === null || $_i17 < $_size13; ++$_i17) { if ($_size13 === null && !$input->readListHasNext()) { break; } $elem18 = null; $elem18 = new Vehicle(); $xfer += $elem18->read($input); $this->vehicles[] = $elem18; } $xfer += $input->readListEnd(); } else { $xfer += $input->skip($ftype); } break; default: $xfer += $input->skip($ftype); break; } $xfer += $input->readFieldEnd(); } $xfer += $input->readStructEnd(); return $xfer; }