Beispiel #1
0
 /**
  * @ignore
  */
 private function serializeRepeatedFieldToStream($field, &$output)
 {
     $getter = $field->getGetter();
     $values = $this->{$getter}();
     $count = count($values);
     if ($count === 0) {
         return true;
     }
     $packed = $field->getPacked();
     if ($packed) {
         if (!GPBWire::writeTag($output, GPBWire::makeTag($field->getNumber(), GPBType::STRING))) {
             return false;
         }
         $size = 0;
         foreach ($values as $value) {
             $size += $this->fieldDataOnlyByteSize($field, $value);
         }
         if (!$output->writeVarint32($size)) {
             return false;
         }
     }
     foreach ($values as $value) {
         if (!GPBWire::serializeFieldToStream($value, $field, !$packed, $output)) {
             return false;
         }
     }
     return true;
 }