Boost logo

Boost Users :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2006-07-10 19:52:15


Rene Rivera wrote:
> Peter Dimov wrote:
>> Joel de Guzman wrote:
>>> Peter Dimov wrote:
>>>
>>>> I can't help but wonder: if some parts of your v1 format are so
>>>> completely redundant as to allow you to reconstruct the original
>>>> data even if you skip them, what was the point of writing them in
>>>> the first place?
>>> Here's one scenario (I'm sure there are others): Your class uses a
>>> 3rd party library called Y. Later, you decide to replace it with
>>> a better engine using a library called Z.
>>
>> Still not getting it. Do you have an example?
>
> Another use case... If you make two versions of a product, one a
> demo/trial and another the full release. One person makes a data file
> in the release version and sends it to a friend who has the demo.
> There happens to be a feature not available in the demo which has an
> impact on the data format.

Yeah, this is actually an example of forward compatibility, a well-known use
case for skippable chunks. In your case the demo version is v1 (it only
understands text) and the release version is v2 (which also understands
embedded images, say). My question was about backward compatibility, since
this is what the serialization library versioning supports. It doesn't make
much sense for v2 to suddenly start ignoring the embedded images saved with
v1. It may start writing them in a PNG format instead of RLE, but when
importing v1 it would still need to read the RLE image.


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