public function write(&$obj, IProtocolFormatter $writer)
 {
     $writer->directWriteString($obj->getName());
     $writer->directWriteBoolean($obj->getMustUnderstand());
     $writer->directWriteInt(-1);
     MessageWriter::writeObject($obj->getValue(), $writer);
 }
 public function write(&$obj, IProtocolFormatter $writer)
 {
     if ($obj instanceof DOMDocument) {
         $writer->writeXML($obj->saveXML());
     } else {
         $writer->writeXML($obj->textContent);
     }
 }
 public function write(&$obj, IProtocolFormatter $writer)
 {
     $writer->beginWriteArray(count($obj));
     $keys = array_keys($obj);
     $size = count($obj);
     for ($index = 0; $index < $size; $index++) {
         MessageWriter::writeObject($obj[$keys[$index]], $writer);
     }
     $writer->endWriteArray();
 }
 public function write(&$obj, IProtocolFormatter $writer)
 {
     $writer->beginWriteArray($obj->count());
     $iterator = $obj->getIterator();
     while ($iterator->valid()) {
         MessageWriter::writeObject($iterator->current(), $writer);
         $iterator->next();
     }
     $writer->endWriteArray();
 }
 public function write(&$object, IProtocolFormatter $writer)
 {
     $referenceCache = $writer->getReferenceCache();
     $refId = $referenceCache->getId($object);
     if (is_string($object)) {
         $writer->writeStringReference($refId);
     } else {
         if (is_array($object)) {
             $writer->writeArrayReference($refId);
         } else {
             $writer->writeObjectReference($refId);
         }
     }
 }
 function writeObject($className, $objectFields, IProtocolFormatter $writer)
 {
     unset($objectFields["_orbclassname"]);
     /*V3ReferenceCache*/
     $cache = $writer->GetReferenceCache();
     /*String*/
     $traitsClassId = $className;
     if ($traitsClassId == null) {
         $str = "";
         $keys = array_keys($objectFields);
         $fieldCount = count($objectFields);
         for ($i = 0; $i < $fieldCount; $i++) {
             $str .= $keys[$i] . "-";
         }
         $traitsClassId = $str;
     }
     if ($cache->HasTraits($traitsClassId)) {
         /*MemoryStream*/
         $stream = "";
         /*int*/
         $traitId = $cache->GetTraitsId($traitsClassId);
         $writer->directWriteBytes(Datatypes::OBJECT_DATATYPE_V3);
         $writer->directWriteVarInt(0x1 | $traitId << 2);
     } else {
         $writer->beginWriteNamedObject($className, count($objectFields));
         if ($className == null) {
             $cache->AddToTraitsCache($traitsClassId);
         }
         $keys = array_keys($objectFields);
         $fieldCount = count($objectFields);
         for ($i = 0; $i < $fieldCount; $i++) {
             $fieldName = $keys[$i];
             $writer->writeFieldName($fieldName);
         }
     }
     $keys = array_keys($objectFields);
     $fieldsCount = count($objectFields);
     for ($i = 0; $i < $fieldsCount; $i++) {
         $fieldName = $keys[$i];
         $writer->beginWriteFieldValue();
         try {
             MessageWriter::writeObject($objectFields[$fieldName], $writer);
         } catch (Exception $exception) {
             if (LOGGING) {
                 Log::log(LoggingConstants::ERROR, "unable to serialize object's field " . $fieldName, $exception);
             }
         }
         $writer->endWriteFieldValue();
     }
     $writer->endWriteNamedObject();
 }
 public function write(&$obj, IProtocolFormatter $writer)
 {
     $writer->directWriteString(is_null($obj->getResponseURI()) ? "null" : $obj->getResponseURI());
     $writer->directWriteString(is_null($obj->getServiceURI()) ? "null" : $obj->getServiceURI());
     $writer->directWriteInt(-1);
     $writer->resetReferenceCache();
     $writer->beginWriteBodyContent();
     MessageWriter::writeObject($obj->getResponseDataObject(), $writer);
     $writer->endWriteBodyContent();
 }
 public function write(&$obj, IProtocolFormatter $writer)
 {
     $dbReader = DatabaseReaderFactory::getReader($obj->getDatabaseName());
     if ($dbReader == null) {
         if (LOGGING) {
             Log::log(LoggingConstants::ERROR, "Database reader for " . $databaseName . " not found");
         }
         $writer->writeNull();
         return;
     }
     $arr = array();
     while ($object = $dbReader->readObject($obj->getResource())) {
         $arr[] = $object;
     }
     if ($writer instanceof AmfV3Formatter) {
         MessageWriter::writeObject($arr, $writer);
     } else {
         $remotingDataSet = new RemotingDataSet($arr);
         MessageWriter::writeObject($remotingDataSet->getDataSetInfo(), $writer);
     }
 }
 public function writeObject($className, $objectFields, IProtocolFormatter $writer)
 {
     if (is_null($className)) {
         $writer->beginWriteObjectMap(count($objectFields));
     } else {
         $writer->beginWriteNamedObject($className, count($objectFields));
     }
     $keys = array_keys($objectFields);
     $fieldCount = count($objectFields);
     for ($i = 0; $i < $fieldCount; $i++) {
         $fieldName = $keys[$i];
         $writer->writeFieldName($fieldName);
         $writer->beginWriteFieldValue();
         try {
             MessageWriter::writeObject($objectFields[$fieldName], $writer);
         } catch (Exception $exception) {
             if (LOGGING) {
                 Log::logException(LoggingConstants::ERROR, "unable to serialize object's field " . $fieldName, $exception);
             }
         }
         $writer->endWriteFieldValue();
     }
     if (is_null($className)) {
         $writer->endWriteObjectMap();
     } else {
         $writer->endWriteNamedObject();
     }
 }
 public function write(&$obj, IProtocolFormatter $writer)
 {
     $writer->beginWriteMessage($obj);
     $writer->writeMessageVersion($obj->getVersion());
     $headers = $obj->getResponseHeaders();
     $bodies = $obj->getResponseBodies();
     if (LOGGING) {
         Log::log(LoggingConstants::DEBUG, "got headers " . count($headers));
         Log::log(LoggingConstants::DEBUG, "got bodies " . count($bodies));
         Log::log(LoggingConstants::DEBUG, "message version: " . $obj->getVersion());
     }
     $headerCount = count($headers);
     $writer->directWriteShort($headerCount);
     for ($index = 0; $index < $headerCount; $index++) {
         MessageWriter::writeObject($headers[$index], $writer);
     }
     $bodyCount = count($bodies);
     $writer->directWriteShort($bodyCount);
     for ($index = 0; $index < $bodyCount; $index++) {
         MessageWriter::writeObject($bodies[$index], $writer);
     }
     $writer->endWriteMessage();
 }
Beispiel #11
0
 public function write(&$obj, IProtocolFormatter $writer)
 {
     $offset = $obj->getOffset();
     $timeInSeconds = strtotime($obj->format("Y-m-d\\TH:i:s\\Z")) - $offset;
     $writer->writeDate(new ORBDateTime($timeInSeconds * 1000, 0));
 }
 public static function writeObject(&$obj, IProtocolFormatter $formatter)
 {
     if (!self::$initialized) {
         self::init();
     }
     $writer = self::getWriter($obj);
     if (is_null($writer)) {
         throw new Exception("Writer is not found.");
     }
     try {
         if ($writer->isReferenceableType()) {
             $referenceCache = $formatter->getReferenceCache();
             if ($referenceCache == null) {
                 $formatter->resetReferenceCache();
                 $referenceCache = $formatter->getReferenceCache();
             }
             if ($referenceCache->hasObject($obj)) {
                 self::$s_referenceWriter->write($obj, $formatter);
                 return;
             } else {
                 $referenceCache->addObject($obj);
             }
         }
         $writer->write($obj, $formatter);
     } catch (Exception $ex) {
         if (LOGGING) {
             Log::logException(LoggingConstants::EXCEPTION, "Unable to write object", $ex);
         }
     }
 }
 public function write(&$obj, IProtocolFormatter $writer)
 {
     $writer->writeNumber($obj);
 }
 public function write(&$obj, IProtocolFormatter $writer)
 {
     $writer->writeBoolean($obj);
 }
 public function write(&$obj, IProtocolFormatter $writer)
 {
     $writer->writeString($obj);
 }