function write(Iterator $list, $writer) { $writer->logMsg('iterator writer'); $writer->refmap->objectlist[] = $list; $total = $this->getCount($list); $class = get_class($list); $type = $writer->typemap->getRemoteType($class); $mappedType = $type ? $type : $class; // OJO con esto $islist = HessianUtils::isListIterate($list); if ($islist) { list($stream, $terminate) = $this->listHeader($writer, $mappedType, $total); foreach ($list as $value) { $stream .= $writer->writeValue($value); } if ($terminate) { $stream .= 'Z'; } } else { if ($this->usetype && $mappedType) { $stream = 'M'; $stream .= $writer->writeType($mappedType); } else { $stream = 'H'; } foreach ($elements as $key => $value) { $stream .= $writer->writeValue($key); $stream .= $writer->writeValue($value); } $stream .= 'Z'; } return new HessianStreamResult($stream); }
function write(Iterator $list, $writer) { $writer->logMsg('iterator writer'); $writer->refmap->objectlist[] = $list; $total = $this->getCount($list); $class = get_class($list); $type = $writer->typemap->getRemoteType($class); $islist = HessianUtils::isListIterate($list); if ($islist) { $stream = 'V'; if ($this->usetype && $type) { $stream .= $writer->writeType($type); } if ($total !== false) { $stream .= $writer->writeInt($total); } foreach ($list as $value) { $stream .= $writer->writeValue($value); } $stream .= 'z'; } else { $stream = 'M'; if ($this->usetype) { $mapType = $type ? $type : $class; $stream .= $writer->writeType($mapType); } foreach ($elements as $key => $value) { $stream .= $writer->writeValue($key); $stream .= $writer->writeValue($value); } $stream .= 'z'; } return new HessianStreamResult($stream); }