$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Scott Howlett (boost_at_[hidden])
Date: 2008-04-23 10:51:28
In article <480F1DB6.9060000_at_[hidden]>, robert.bielik_at_[hidden] 
says...
> Is there a way to do a "re-serialization" of an object structure? Let's say I have a couple of objects, and I
> serialize them to "State A", then change a few things. Ideally, I'd like to just deserialize "State A" so that
> I get the objects back to that state, without boost::serialization creating new objects for me.
> 
> Is it doable? (it is for an undo implementation)
> 
> TIA
> /Rob
> 
I don't have an answer, but I do have a problem that is (I think) quite 
similar, which I was just planning to ask about today.
In my case, I have a big graph of objects that I serialize. After 
serialization, that data is processed externally, and the results are 
serialized in a similar way. While de-serializing this updated data, I 
would like to merge it on the fly with my original data, just updating 
object state as necessary and using my existing object pointers where 
possible -- I want to avoid the memory and overhead of reading in the 
entire new object graph and then traversing it to merge it into my 
original objects.
For example, in my original data set I serialize object A, and then 
object B with pointer-to-A. This data is processed, and I de-serialize 
the results. When I read (possibly modified) object A, I would like to 
update my existing object A with any changed state, and then (this is 
the part I don't know how to do) have the input archive use the address 
of my existing object A when it deserializes B.
So my question is also... is this doable? More specifically, is it 
doable without modifying the existing library code?
Thanks,
Scott