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->directWriteString($obj->getName()); $writer->directWriteBoolean($obj->getMustUnderstand()); $writer->directWriteInt(-1); MessageWriter::writeObject($obj->getValue(), $writer); }
public function write(&$obj, IProtocolFormatter $writer) { $resourceType = get_resource_type($obj); // only database resource supported $databaseName = substr($resourceType, 0, strpos($resourceType, ' ')); MessageWriter::writeObject(new DataTable($obj, $databaseName), $writer); }
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->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) { $writer->beginWriteArray($obj->count()); $iterator = $obj->getIterator(); while ($iterator->valid()) { MessageWriter::writeObject($iterator->current(), $writer); $iterator->next(); } $writer->endWriteArray(); }
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) { $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 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(); }
public function write(&$obj, IProtocolFormatter $formatter) { MessageWriter::writeObject($obj->getBody(), $formatter); }
private function serializeResponse(Request $request) { $formatter = $request->getFormatter(); MessageWriter::writeObject($request, $formatter); $byteBuffer = $formatter->getBytes(); ob_clean(); header("Content-type: " . $formatter->getContentType()); header("Content-length: " . strlen($byteBuffer)); $formatter->cleanup(); print $byteBuffer; ob_end_flush(); }
public function createRequest2($className, $methodName, $args, $headers) { /*Header[]*/ $headersArray = null; if (count($headers) != 0) { $headersArray = array(); $i = 0; foreach ($headers as $headerName => $header) { $headersArray[$i] = new Header($headerName, false, -1, new ConcreteObject($header)); $i++; } } /*Body[]*/ $bodiesArray = array(); /*ReqMessage*/ $bodyMessage = new ReqMessage(); $bodyMessage->body = new BodyHolder(); $bodyMessage->body->body = $args; $bodyMessage->destination = $this->destination; $bodyMessage->timestamp = 0; $bodyMessage->timeToLive = 0; if ($className != null) { $bodyMessage->source = $className; } $bodyMessage->operation = $methodName; $bodiesArray[0] = new Body(".", ".", -1, null); /*Message*/ $request = new Request(3, $headersArray, $bodiesArray); $request->setResponseBodyPart($bodyMessage); //setResponseBodyData( bodyMessage ); /*AmfV3Formatter*/ $formatter = new AmfV3Formatter(); MessageWriter::writeObject($request, $formatter); /*byte[]*/ $requestBytes = $formatter->getBytes(); // var_dump($requestBytes); // // Log::log(LoggingConstants::MYDEBUG, ob_get_contents()); $formatter->cleanup(); return $requestBytes; }