Boost logo

Boost Users :

Subject: Re: [Boost-users] [Serialization] Postpone saving
From: Robert Ramey (ramey_at_[hidden])
Date: 2010-07-18 11:45:38


Mailing Lists Controller wrote:
> Hi,
> I'm working with the Serialization library and in detail with the xml
> archives. In my code I have to serialize a lot of classes and I wish
> to save in the xml file only when I've done with the serialization of
> all clasess,

The best way to do this would be to use your own stream type.
a) make a new filebuf which just saves all it's data until it closes.
b) make a new stream type which uses your new file buf
c) use your new stream type when you create a serialization archive

Another way- not as good be perhaps simpler
a) serialize to a stringstream
b) when done, writhe the string stream to a file.

>also I would like to have more control when the
> Serialization saves the file (do it raise exceptions when it save
> files? Which ones?).

See the documentaton for list of exceptions which might be invoked.

> As far as I read from the tutorials when I use the operator<< in the
> xml_archive it save directly to the files.

It actually writes to a stream, the stream writes to filebuf, filebuf writes
to files.

> In my test I've seen that
> the archive have no problem to save many classes to the same archive
> however as I've wrote I would like to have more control (at least to
> know which errors appear during writing).

> Is it possible?

more than possible. It's easy. OK it does require careful study of
C++ streams and how to use them - but that's useful anyway.

Robert Ramey


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