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 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(); } }
/** * Rewrite a messages array. * * @param $code The language code. * @param $write Write to the messages file? * @param $listUnknown List the unknown messages? */ function rebuildLanguage($code, $write, $listUnknown) { global $wgLanguages; $messages = $wgLanguages->getMessages($code); $messages = $messages['all']; MessageWriter::writeMessagesToFile($messages, $code, $write, $listUnknown); }
public function __construct() { $this->m_objectSerializer = new V3ObjectSerializer(); $this->m_referenceCache = new V3ReferenceCache(); MessageWriter::addTypeWriter('DateTime', new DateWriter(TRUE)); MessageWriter::addTypeWriter('ORBDateTime', new ORBDateTimeWriter(TRUE)); MessageWriter::addTypeWriter('string', new StringWriter(TRUE)); }
/** * Rewrite a messages array. * * @param $languages * @param $code string The language code. * @param bool $write Write to the messages file? * @param bool $listUnknown List the unknown messages? * @param bool $removeUnknown Remove the unknown messages? * @param bool $removeDupes Remove the duplicated messages? * @param $dupeMsgSource string The source file intended to remove from the array. * @param $messagesFolder String: path to a folder to store the MediaWiki messages. */ function rebuildLanguage($languages, $code, $write, $listUnknown, $removeUnknown, $removeDupes, $dupeMsgSource, $messagesFolder) { $messages = $languages->getMessages($code); $messages = $messages['all']; if ($removeDupes) { $messages = removeDupes($messages, $dupeMsgSource); } MessageWriter::writeMessagesToFile($messages, $code, $write, $listUnknown, $removeUnknown, $messagesFolder); }
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(&$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(); }
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); }
public static function init() { if (self::$initialized) { return; } self::$s_referenceWriter = new ReferenceWriter(); self::$m_defaultWriter = new ObjectWriter(); self::$m_nullWriter = new NullWriter(); self::$m_numberWriter = new NumberWriter(); self::$m_stringWriter = new StringWriter(false); self::$m_arrayWriter = new ArrayWriter(); self::$m_dateWriter = new DateWriter(FALSE); self::$m_booleanWriter = new BooleanWriter(); self::$m_messageWriter = new AMFMessageWriter(); self::$m_headerWriter = new AMFHeaderWriter(); self::$m_bodyWriter = new AMFBodyWriter(); self::$m_mapWriter = new BoundPropertyBagWriter(); self::$m_bodyHolderWriter = new BodyHolderWriter(); self::$m_stdClassWriter = new StdClassWriter(); self::$m_resourceWriter = new ResourceWriter(); self::$m_dataTableAsListWriter = new DataTableAsListWriter(); self::$m_orbdateWriter = new ORBDateTimeWriter(FALSE); self::$m_arrayObjectWriter = new ArrayObjectWriter(); self::$m_xmlWriter = new ORBXMLWriter(); self::$m_writers['NULL'] = self::$m_nullWriter; self::$m_writers['integer'] = self::$m_numberWriter; self::$m_writers['double'] = self::$m_numberWriter; self::$m_writers['boolean'] = self::$m_booleanWriter; self::$m_writers['string'] = self::$m_stringWriter; self::$m_writers['Request'] = self::$m_messageWriter; self::$m_writers['Header'] = self::$m_headerWriter; self::$m_writers['Body'] = self::$m_bodyWriter; self::$m_writers['DateTime'] = self::$m_dateWriter; self::$m_writers['ORBDateTime'] = self::$m_orbdateWriter; self::$m_writers['array'] = self::$m_arrayWriter; self::$m_writers['object'] = self::$m_defaultWriter; self::$m_writers['BodyHolder'] = self::$m_bodyHolderWriter; self::$m_writers['stdClass'] = self::$m_stdClassWriter; self::$m_writers['DataTable'] = self::$m_dataTableAsListWriter; self::$m_writers['ArrayObject'] = self::$m_arrayObjectWriter; self::$m_writers['DOMDocument'] = self::$m_xmlWriter; self::$m_writers['DOMElement'] = self::$m_xmlWriter; self::$m_writers['DOMNode'] = self::$m_xmlWriter; self::$initialized = true; }
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; }
public function __construct() { $this->m_objectSerializer = new ObjectSerializer(); $this->m_referenceCache = new ReferenceCache(); MessageWriter::addTypeWriter('string', new StringWriter(false)); }
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(); }