01-10-2007 02:15 PM
01-10-2007 02:27 PM
01-10-2007
02:28 PM
- last edited on
11-13-2025
01:46 PM
by
Content Cleaner
By the way, this is a fantastic in-depth article explaining the reasoning behind LVOOP.
01-10-2007 02:44 PM
Jarrod,
Thanks - I will checkout the link. I guess I'll have to think of the direction to go. Seems like a little bit of "cludge" to do the queue method and I would always have to branch the queue reference and not the class since that would be copied in the new execution system. I like to use the concept of the event structure to capture UI events that update a class that is essentially doing it's processing in another execution system. Maybe I will have to prototype and check performance.
John
02-06-2007 10:12 AM
02-16-2007 04:45 PM
02-16-2007 05:18 PM
02-18-2007 08:17 AM
02-19-2007 03:23 AM
Working at Endevo I can give some input as regards our GOOP architecture, GOOP 2, used by our toolkit: GOOP Inheritance Toolkit (GOOP Wizard 3).
Our Wizard generates a class object repository using an un-initialized shift register to store object data. We also use another shared repository which is also an un-initialized shift register.
The GOOP reference is basically a pointer to find the correct element index in the array holding all object data of a class. Then, of course, since we support inheritance it is a bit more complicated. What appears to be one object is actually composed of data stored in one un-initialized shift register per class in the inheritance hierarchy.
As regards locking we use Occurence to lock the object while data is modified.
The architecture works well in a parallell execution environment. The objects created will exist in the memory context (application instance) they are created in and cannot be accessed in another memory context. This is standard LabVIEW behaviour and has nothing to do with GOOP.
If you need more info I am happy to assist. The VIs are locked mostly to protect the way we implemented inheritance and virtual methods and also to simplify maintenance. We maintain the class templates and the Wizard have a feature for upgrading existing classes to new versions of the class templates used.
Thanks,
Jan Klasson
02-19-2007 10:21 AM