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 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); } } }