Parser which handles binary formatted LLSD. More...
#include <llsdserialize.h>
Public Member Functions | |
LLSDBinaryParser () | |
Constructor. | |
Protected Member Functions | |
virtual S32 | doParse (std::istream &istr, LLSD &data) const |
Call this method to parse a stream for LLSD. | |
virtual | ~LLSDBinaryParser () |
Destructor. |
Parser which handles binary formatted LLSD.
LLSDBinaryParser::LLSDBinaryParser | ( | ) |
Constructor.
S32 LLSDBinaryParser::doParse | ( | std::istream & | istr, | |
LLSD & | data | |||
) | const [protected, virtual] |
Call this method to parse a stream for LLSD.
This method parses the istream for a structured data. This method assumes that the istream is a complete llsd object -- for example an opened and closed map with an arbitrary nesting of elements. This method will return after reading one data object, allowing continued reading from the stream by the caller.
istr | The input stream. | |
data[out] | The newly parse structured data. |
Undefined: '!'
Boolean: 't' for true 'f' for false
Integer: 'i' + 4 bytes network byte order
Real: 'r' + 8 bytes IEEE double
UUID: 'u' + 16 byte unsigned integer
String: 's' + 4 byte integer size + string
strings also secretly support the notation format Date: 'd' + 8 byte IEEE double for seconds since epoch
URI: 'l' + 4 byte integer size + string uri
Binary: 'b' + 4 byte integer size + binary data
Array: '[' + 4 byte integer size + all values + ']'
Map: '{' + 4 byte integer size every(key + value) + '}'
map keys are serialized as s + 4 byte integer size + string or in the notation format.
Implements LLSDParser.