[gme-users] Mirroring Transactions

Jae young Bang jaeyounb at usc.edu
Tue Dec 6 01:49:43 CST 2011


Thank you for your response.

The bad news is not really bad for me. I am a PhD student, and the problem you described as the bad news is actually my research topic. I use GME to build a prototype to evaluate my idea.

The good news would be bad news for me if I understood it correctly. Did you say that it would be hard to implement such an operation stream?

Thank you again!

~Jae
jaeyounb at USC.edu

On Dec 5, 2011, at 9:08 PM, Howard, Larry P wrote:

> So there's good news and bad news.  The bad news is that, even with adequate operation streams, consistency among a set of independent editing sessions is impossible to achieve using only them.  The good news is that GME makes it sufficiently difficult to produce adequate operation streams that it's impractical to prove it's impossible by trying it out.
> 
> Regards,
> lph
> --
> Larry Howard, Sr. Research Scientist
> Institute for Software Integrated Systems, Vanderbilt University
> 
> 
> On Dec 5, 2011, at 6:18 PM, Jae Young Bang wrote:
> 
>> Hello,
>> 
>> I am building a system that has multiple instances of GME (I'm using 9.12.15) on different machines and mirrors the actions made by the users on each others' machines.
>> 
>> For example, if there were two users A and B, B would see what A does on A's machine such as creating new objects, updating attributes and registries, and removing objects. A and B would eventually have the same model in their local GME instance.
>> 
>> I first tried to listen to ObjectEvents, transfer them over, and replay the events by developing a plugin that captures ObjectEvents and modifies the MGA model according to the captured ObjectEvents. It works, but it ruins the undo/redo architecture because it does not consider the transaction architecture.
>> 
>> I figured what I'd ultimately like to do is to grab a transaction when it's completed, transfer it over, and execute the transaction on the other side by putting it in the transactions list.
>> 
>> What I wonder is how to implement it. It seems like a plugin cannot manipulate transactions as nested transactions are not allowed. When objectEventPerformed is invoked, the plugin is in the middle of a transaction, and the transaction ends after the objectEventPerformed returns.
>> 
>> Would it be possible to do this with a plugin, or would it not be possible to do this with a plugin?
>> 
>> Thank you very much for your help!
>> 
>> -- 
>> Jae young Bang
>> _______________________________________________
>> gme-users mailing list
>> gme-users at list.isis.vanderbilt.edu
>> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users
> 
> _______________________________________________
> gme-users mailing list
> gme-users at list.isis.vanderbilt.edu
> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.isis.vanderbilt.edu/pipermail/gme-users/attachments/20111205/05866312/attachment.html 


More information about the gme-users mailing list