Boost logo

Boost Users :

From: Robert Ramey (ramey_at_[hidden])
Date: 2005-11-10 12:19:36


This question comes up repeatedly. I'm sure this is because the "tradional"
way
of transmitting data is to first define a format and then write code to
implment it.

The serialization system is backwards in this regard. The format is driven
by the
composition of C++ data structures that are being saved/loaded. The system
works by guarenteeing that the tree created by composition of C++ data
structures is traversed in the same sequence both on saving and loading.
Hence
there is almost no need for any apriori specification as to the sequence of
data or
content of the archive. It is for this reason, that there can be archives
of different
formats as long as they are defined in compatible pairs. In fact, different
formats
can be used simultaneously.

It is a common desire to interface with the archives generated. This might
be
possible in some cases but unlikely to be successful generally. This is due
to the fact that the "format" is dependent on the C++ data structures that
drive it and would be changed if the program changes. It is this same
dependency which makes the serialization system (almost) totally
automatically
applicable to every C++ program and adjustable as the C++ code evolves.

As I said, this is different that what many people expect and takes some
getting used to.

Robert Ramey

Merrill Cornish wrote:
> What external file format does the Boost Serialization Library use?
>
> The introduction to the library states the requirement that
> serialization written by one machine must be readable by a different
> machine. And, elsewhere, it mentions that and XML intermediate file
> is on possibility; but I can't seem to find what the format being
> used is.
>
> Merrill


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net