public function read(FlashorbBinaryReader $reader, ParseContext $parseContext)
 {
     $dataLength = $reader->readInteger();
     $buffer = $reader->readBytes($dataLength);
     $dom = new DomDocument();
     $dom->loadXML($buffer);
     return new XmlDataType($dom);
 }
 public function read(FlashorbBinaryReader $reader, ParseContext $parseContext)
 {
     $refId = $reader->readVarInteger();
     if (($refId & 0x1) == 0) {
         return $parseContext->getReference($refId >> 1);
     }
     $bytes = $reader->readBytes($refId >> 1);
     $objArray = array();
     $len = strlen($bytes);
     for ($i = 0; $i < $len; $i++) {
         $objArray[] = new NumberObject(ord($bytes[$i]));
     }
     $arrayType = new ArrayType($objArray);
     $parseContext->addReference($arrayType);
     return $arrayType;
 }
 private function readHeader(FlashorbBinaryReader $reader)
 {
     Log::log(LoggingConstants::DEBUG, "Called");
     $nameLength = $reader->readUnsignedShort();
     $name = $reader->readBytes($nameLength);
     $mustUnderstand = $reader->readBoolean();
     $length = $reader->readInteger();
     //$reader->readBytes($length);
     return new Header($name, $mustUnderstand, $length, self::readData($reader, null, null));
 }
 public function read(FlashorbBinaryReader $reader, ParseContext $parseContext)
 {
     $dataLength = $reader->readInteger();
     $buffer = $reader->readBytes($dataLength);
     return new StringType(utf8_decode(buffer));
 }