Esempio n. 1
0
 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);
 }