Boost logo

Boost :

From: Matthias Troyer (troyer_at_[hidden])
Date: 2002-11-20 09:14:57


On Wednesday, November 20, 2002, at 01:42 PM, Gennadiy Rozental wrote:

> [Issue 3] Library seems to hardcode important part of functionality
> that
> users may want to overwrite. Here I refer in most part to
> archive/object
> preamble.

> Major [Issue 3]: Submitted library is somewhat limited in a means to
> modify
> what is written in archive header (I can change it but I will need to
> supply
> full fledged specific archive cause currently this logic is in
> constructor).
> And even more limited in a means to modify object header together with
> logic
> bound to it. Let me give couple examples.
>
> 1. Serialization signature is 22 bytes. Let say I am serializing
> messages
> into binary format for sending them through network. Size of my
> serialized
> code is 10 bytes. I do not believe I could accept 22 bytes of
> "signature
> information". The same about the version. I may or may not be
> interested in
> versioning of serialization system.
> 2. Binary archive constructor save some "guard" information. I may or
> may
> not want to do this. Or I may want to be even more careful.
> 3. Object save/load function contains pretty expensive logic for
> making sure
> that object is stored/loaded only once. If for any reason
> (performance) I
> could not afford constant searching but have external knowledge that
> all
> objects are different I may want to skip lookup phase.
> 4. Let say I am sending data by contract. It could be fixed contract
> in
> external file loaded during initialization or dynamic one sent before
> sending real data. The purpose id to save the bandwidth and eliminate
> all
> object/class ids from serialized stream. What should I do?

After playing some more and trying to read my old "legacy"
serialization files which do not contain any such preamble I want to
support Gennadiy's point. I would like for my archive classes (e.g. to
read legacy archive formats) to override these preambles.

Matthias


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk