LLSDBinaryFormatter Class Reference

Formatter which outputs the LLSD as a binary notation format. More...

#include <llsdserialize.h>

Inheritance diagram for LLSDBinaryFormatter:

Inheritance graph
[legend]
Collaboration diagram for LLSDBinaryFormatter:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 LLSDBinaryFormatter ()
 Constructor.
virtual S32 format (const LLSD &data, std::ostream &ostr, U32 options=LLSDFormatter::OPTIONS_NONE) const
 Call this method to format an LLSD to a stream.

Protected Member Functions

virtual ~LLSDBinaryFormatter ()
 Destructor.
void formatString (const std::string &string, std::ostream &ostr) const
 Helper method to serialize strings.


Detailed Description

Formatter which outputs the LLSD as a binary notation format.

The binary format is a compact and efficient representation of structured data useful for when transmitting over a small data pipe or when transmission frequency is very high.

The normal boolalpha and real format commands are ignored.

All integers are transmitted in network byte order. The format is:
Undefined: '!'
Boolean: character '1' for true character '0' 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
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 'k' + 4 byte integer size + string

Definition at line 562 of file llsdserialize.h.


Constructor & Destructor Documentation

LLSDBinaryFormatter::~LLSDBinaryFormatter (  )  [protected, virtual]

Destructor.

Definition at line 1370 of file llsdserialize.cpp.

LLSDBinaryFormatter::LLSDBinaryFormatter (  ) 

Constructor.

LLSDBinaryFormatter

Definition at line 1365 of file llsdserialize.cpp.


Member Function Documentation

S32 LLSDBinaryFormatter::format ( const LLSD data,
std::ostream &  ostr,
U32  options = LLSDFormatter::OPTIONS_NONE 
) const [virtual]

Call this method to format an LLSD to a stream.

Parameters:
data The data to write.
ostr The destination stream for the data.
Returns:
Returns The number of LLSD objects fomatted out

Implements LLSDFormatter.

Definition at line 1374 of file llsdserialize.cpp.

References LLSD::asBinary(), LLSD::asBoolean(), LLSD::asInteger(), LLSD::asReal(), LLSD::asString(), LLSD::asUUID(), LLSD::beginArray(), LLSD::beginMap(), LLSD::endArray(), LLSD::endMap(), formatString(), ll_htond(), S32, LLSD::size(), LLSD::type(), LLSD::TypeArray, LLSD::TypeBinary, LLSD::TypeBoolean, LLSD::TypeDate, LLSD::TypeInteger, LLSD::TypeMap, LLSD::TypeReal, LLSD::TypeString, LLSD::TypeUndefined, LLSD::TypeURI, LLSD::TypeUUID, and UUID_BYTES.

Here is the call graph for this function:

void LLSDBinaryFormatter::formatString ( const std::string &  string,
std::ostream &  ostr 
) const [protected]

Helper method to serialize strings.

This method serializes a network byte order size and the raw string contents.

Parameters:
string The string to write.
ostr The destination stream for the data.

Definition at line 1478 of file llsdserialize.cpp.

Referenced by format().

Here is the caller graph for this function:


The documentation for this class was generated from the following files:

Generated on Fri May 16 09:03:32 2008 for SecondLife by  doxygen 1.5.5