On 16. May 2012, at 19:38, Matteo Hausner wrote:

>> If you've had a previous object which you are going to abandon, you have to 
>> unmap/release it. The design looks somewhat fishy, since you're recreating 
>> children objects when a child changes? I would expect this to happen only if 
>> the child itself is a different object.
> 
> You are right, I guess I didn't really think this through...
> This must also be the reason why manipulations on graph nodes are only
> passed on, if I set the dirty bits for children on all nodes residing
> above them in the graph.
> However I can't really figure out a way to implement a correct
> synchronization behavior, without creating a new node instance every
> time.

The general logic should be to sync() the child if only the version changed, 
and to create a new one if the id changed. The full code might be a bit hairy 
at the end, depending on you implementation details.

> I would be super happy, if you could give me some more advice on how
> to implement a correct commit / synchronization behavior for a
> distributed graph in Equalizer...

The details you'll have to decide on yourself, I'm afraid. It's always a bit 
different, depending on your use case. The 
co::DataO/IStream::(de)serializeChildren might help as an inspiration.


HTH,

Stefan.


_______________________________________________
eq-dev mailing list
[email protected]
http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev
http://www.equalizergraphics.com

Reply via email to