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));
 }
Example #6
0
/**
 * 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();
 }
Example #8
0
 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;
 }
Example #15
0
 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;
 }
Example #16
0
 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();
 }