Binary serialization

From Code Synthesis Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 09:43, 14 February 2011
Erik Sjölund (Talk | contribs)

← Previous diff
Current revision
Erik Sjölund (Talk | contribs)

Line 13: Line 13:
== XDR (eXternal Data Representation) == == XDR (eXternal Data Representation) ==
-[http://en.wikipedia.org/wiki/External_Data_Representation Description on Wikipedia]+[http://en.wikipedia.org/wiki/External_Data_Representation Wikipedia entry]
 + 
 +There is an example of using XDR in
 +[http://scm.codesynthesis.com/?p=xsd/xsd.git;a=tree;f=examples/cxx/tree/binary/xdr;hb=HEAD examples/cxx/tree/binary/xdr]
= Custom binary formats = = Custom binary formats =
== Boost serialization library == == Boost serialization library ==
 +
 +The [http://www.boost.org/ Boost C++ libraries] provides a serialization library.
 +
 +There is an example of using Boost serialization in
 +[http://scm.codesynthesis.com/?p=xsd/xsd.git;a=tree;f=examples/cxx/tree/binary/boost;hb=HEAD examples/cxx/tree/binary/boost]
 +
== QDataStream == == QDataStream ==
 +
 +[http://doc.qt.nokia.com/latest/qdatastream.html QDataStream] is a serialization class from the Qt library. Some [https://svn.sbc.su.se/repos/qdatastream-for-codesynthesis-xsd/trunk/ experimental code] is available that uses QDataStream together with Codesynthesis XSD.
 +
 += Comparison of the binary formats =
 +
 +Serializing a Codesynthesis XSD data object can yield different file sizes for the different binary formats.
 +The XML Schema datatype int8 takes up 32 bits in the XDR format but only 8 bit in the CDR and the QDataStream format (tested on a Ubuntu Linux 10.10 32-bit computer).

Current revision

The C++/Tree Mapping User Manual has a section about binary serialization.

Contents

Predefined binary formats

CDR (Common Data Representation)

The ADAPTIVE Communication Environment (ACE) provides a binary format. The extraction and insertion classes are described in the doxygen generated documentation.

There is an example of using CDR in examples/cxx/tree/binary/cdr

XDR (eXternal Data Representation)

Wikipedia entry

There is an example of using XDR in examples/cxx/tree/binary/xdr

Custom binary formats

Boost serialization library

The Boost C++ libraries provides a serialization library.

There is an example of using Boost serialization in examples/cxx/tree/binary/boost

QDataStream

QDataStream is a serialization class from the Qt library. Some experimental code is available that uses QDataStream together with Codesynthesis XSD.

Comparison of the binary formats

Serializing a Codesynthesis XSD data object can yield different file sizes for the different binary formats. The XML Schema datatype int8 takes up 32 bits in the XDR format but only 8 bit in the CDR and the QDataStream format (tested on a Ubuntu Linux 10.10 32-bit computer).

Personal tools