Boost logo

Boost Users :

Subject: Re: [Boost-users] Boost Serialization + Forward compatibility [was Re: boost::serialization and PHP websites]
From: Sohail Somani (sohail_at_[hidden])
Date: 2009-06-01 00:25:11


Steven Watanabe wrote:
> AMDG
>
> Robert Ramey wrote:
>> Sohail Somani wrote:
>>
>>> Just typing out loud: Forward compatibility is the ability to load an
>>> archive with a version of 4 into an application with a version of 3.
>>>
>>
>> To me forward compatability is he ability to create a version 3 archive
>> with a version 4 program. Hmmm - now that I read that, it doesn't
>> look right. I guess that should be called "complete" backward
>> compatibility. I don't see how it is possible while writing version
>> 3 progam to know what version 4 is going to save.
>>
>
> It would be possible in special cases. For example, the
> version 4 archive could add information that the version
> 3 program knows to skip somehow.

Right, so one totally naive way the library could do it would be to
inject a marker after every serialization call. This way, the version 3
application could simply search for the marker after every serialization
call in order to set up the next serialization call.

Basically, I am saying that version 4 of the app writes out:

foo 1 2 3 |END_MARKER| foo 4 5 6 |END_MARKER|

And version 3, which can only read the first two ints, reads foo 1 2 and
then resets the stream pointer (or whatever) to right after |END_MARKER|.

If that makes ANY sense, I will be happy.

-- 
Sohail Somani
http://uint32t.blogspot.com

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