[easel] Re: [gme-users] Invoking runComponent from GME Addon.

Peter Volgyesi peter.volgyesi at vanderbilt.edu
Thu Dec 8 11:46:01 CST 2005


Daniel,

The problem is that - although one can implement add-on and interpreter
"interfaces" on the same component - BON2 does not support this completely.
Your particular problem can be solved by re-defining EXCETYPE in
ComponentObj.cpp after line 114:

#undef EXCETYPE
#define EXCETYPE (componenttype_enum)(COMPONENTTYPE_ADDON |
COMPONENTTYPE_INTERPRETER)

I've tried to implement a hybrid component in BON2. The easiest way is to
start as an add-on, since add-ons also have the invokeex method. By making
the modification above, I was able to invoke my add-on as an interpreter.
Now, I am running into some problems with object destructions at the end of
invokeex. I suspect, that nobody ever made a hybrid BON2 interpreter, so you
should be prepared for problems. At this moment I would suggest to implement
a hybrid interpreter in raw COM (like the Contraint Manager).

--
Peter Volgyesi
Vanderbilt University, ISIS  

> -----Original Message-----
> From: gme-users-bounces at list.isis.vanderbilt.edu 
> [mailto:gme-users-bounces at list.isis.vanderbilt.edu] On Behalf 
> Of Daniel Waddington
> Sent: Thursday, December 08, 2005 10:24 AM
> To: A list for GME users to share thoughts and discuss bugs and fixes.
> Subject: Re: [easel] Re: [gme-users] Invoking runComponent 
> from GME Addon.
> 
> Hmm, apparently this is more complicated.  GME now thinks it 
> is an AddOn and will not let me run it as an interpreter!
> 
> Ideas?
> 
> Daniel.
> 
> 
> On Dec 8, 2005, at 10:19 AM, Daniel Waddington wrote:
> 
> > How do I make the interpreter an addon apart from defining 
> GME_ADDON 
> > or whatever the symbol is?
> >
> > Daniel.
> >
> > On Dec 8, 2005, at 10:16 AM, Akos Ledeczi wrote:
> >
> >>
> >> The second idea is to make the interpreter, that you want to call 
> >> from the Add-on, an Add-on itself. Then it will be called by GME 
> >> automatically. The Constraint Manager is a similar animal: you can 
> >> call it from the GME gui and it is called by events also.
> >>
> >> Akos
> >>
> >>
> >> Daniel Waddington wrote:
> >>> Larry,
> >>> I have a GME Addon which will happily respond to events 
> from the   
> >>> outside IDE.  But as part of the event processing I need to make 
> >>> sure  that a given interpreter is run.  Instead of 
> getting the addon 
> >>> to  trigger the interpreter, is there a way to externally 
> trigger an  
> >>> interpreter?
> >>> Is this clearer?
> >>> Thanks,
> >>> Daniel.
> >>> On Dec 7, 2005, at 7:16 PM, Larry Howard wrote:
> >>>> Jonathan,
> >>>>
> >>>> The issue here has transitioned to invoking a component 
> from within 
> >>>> an event-based AddOn.  The problem, conceptually, is that AddOns 
> >>>> are  invoked in a late phase of transaction-processing.  The 
> >>>> context is really very  wrong
> >>>> for component invocation, since components are themselves   
> >>>> transaction-based.
> >>>>
> >>>> The possibility for externally generating events has 
> been addressed  
> >>>> already in the affirmative.  There are some issues of 
> communicating 
> >>>> application-specific data for the event from an external 
> source,  
> >>>> and Peter has provided a functional (if somewhat tortured) 
> >>>> workaround.
> >>>>
> >>>> It might be better if Daniel were to tell us more about 
> the "what"  
> >>>> without
> >>>> choosing yet a "how".  For example, just as it is possible to   
> >>>> invoke an
> >>>> AddOn externally, by generating a global or object 
> event, it is   
> >>>> possible to
> >>>> invoke a model interpreter externally.  Perhaps the 
> external entity  
> >>>> should be orchestrating.  I don't know because I don't know what 
> >>>> Daniel is  trying to accomplish.
> >>>>
> >>>> -----Original Message-----
> >>>> From: gme-users-bounces at list.isis.vanderbilt.edu
> >>>> [mailto:gme-users-bounces at list.isis.vanderbilt.edu] On 
> Behalf Of  
> >>>> Jonathan Sprinkle
> >>>> Sent: Wednesday, December 07, 2005 5:52 PM
> >>>> To: 'gme-users'
> >>>> Cc: easel at atl.lmco.com
> >>>> Subject: RE: [easel] Re: [gme-users] Invoking 
> runComponent from GME  
> >>>> Addon.
> >>>>
> >>>>
> >>>> Peter,
> >>>>
> >>>> Is this a possible enhancement to GME? It seems like if 
> the AddOn  
> >>>> is running and waiting for events that there should be 
> *some* way 
> >>>> to send an  event externally...after all, the mouse can do it. ;)
> >>>>
> >>>> Daniel,
> >>>>
> >>>> Maybe for demo purposes we can just have a special 
> interpreter that  
> >>>> does
> >>>> this interfacing (read: generate the event which the addon is   
> >>>> listening
> >>>> for...) and work with Peter to figure out how to generate this 
> >>>> through visual studio's editor later?
> >>>>
> >>>> I'm a little spotty following this conversation, I'll 
> try to catch  
> >>>> up on the thread this evening....
> >>>>
> >>>> Jonathan
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: easel-bounces at atl.lmco.com [mailto:easel- 
> >>>>> bounces at atl.lmco.com] On Behalf Of Daniel Waddington
> >>>>> Sent: Wednesday, December 07, 2005 2:43 PM
> >>>>> To: A list for GME users to share thoughts and discuss 
> bugs and  
> >>>>> fixes.
> >>>>> Cc: easel at atl.lmco.com
> >>>>> Subject: [easel] Re: [gme-users] Invoking runComponent 
> from GME  
> >>>>> Addon.
> >>>>>
> >>>>> Hi Peter,
> >>>>>
> >>>>> So basically your saying there is no way to trigger an 
> interpreter 
> >>>>> from an IMgaProject interface? Oh dear. Now I really am 
> stuck ;-(
> >>>>>
> >>>>> Daniel.
> >>>>>
> >>>>> On Dec 7, 2005, at 1:39 PM, Peter Volgyesi wrote:
> >>>>>
> >>>>>> You are right, you cannot invoke another interpreter from the 
> >>>>>> event handler.
> >>>>>>
> >>>>>> Even if you would invoke it by using a lower level COM API, it 
> >>>>>> failed, since the interpreter would (try to) initate a 
> >>>>>> transaction on its own.
> >>>>>>
> >>>>>> --
> >>>>>> Peter Volgyesi
> >>>>>> Vanderbilt University, ISIS
> >>>>>>
> >>>>>>> -----Original Message-----
> >>>>>>> From: gme-users-bounces at list.isis.vanderbilt.edu
> >>>>>>> [mailto:gme-users-bounces at list.isis.vanderbilt.edu] 
> On Behalf Of 
> >>>>>>> Daniel Waddington
> >>>>>>> Sent: Wednesday, December 07, 2005 11:51 AM
> >>>>>>> To: A list for GME users to share thoughts and 
> discuss bugs and 
> >>>>>>> fixes.
> >>>>>>> Subject: Re: [gme-users] Invoking runComponent from GME Addon.
> >>>>>>>
> >>>>>>> Short of discussing this with my self, is this because I am 
> >>>>>>> already in a transaction, and runComponent tries to 
> create a new 
> >>>>>>> transaction? or am I totally off?
> >>>>>>>
> >>>>>>> Daniel.
> >>>>>>>
> >>>>>>> On Dec 7, 2005, at 8:58 AM, Daniel Waddington wrote:
> >>>>>>>
> >>>>>>>> Hi,
> >>>>>>>>
> >>>>>>>> I think I am seriously missing something in the execution
> >>>>>>>
> >>>>>>> architecture
> >>>>>>>
> >>>>>>>> of BON2.  In my object event handling method, inside a GME 
> >>>>>>>> Addon, I want to trigger an interpreter.
> >>>>>>>>
> >>>>>>>> So I thought I could do..
> >>>>>>>>
> >>>>>>>> object->getProject()->runComponent("MGA.Interpreter.EML");
> >>>>>>>>
> >>>>>>>> but then I get an exception in COMCLASS::Initialize(struct
> >>>>>>>
> >>>>>>> IMgaProject
> >>>>>>>
> >>>>>>>> *p) in a some CComPtr declaration???
> >>>>>>>>
> >>>>>>>> Please help, I'm in dispair!!!
> >>>>>>>>
> >>>>>>>> Daniel.
> >>>>>>>>
> >>>>>>>> ===============================  Dr. Daniel G. Waddington  
> >>>>>>>> Lockheed Martin ATL
> >>>>>>>>  3 Executive Campus, 6th Floor
> >>>>>>>>  Cherry Hill, NJ 08002
> >>>>>>>>  Tel:856 792 9740
> >>>>>>>> ===============================
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> _______________________________________________
> >>>>>>>> gme-users mailing list
> >>>>>>>> gme-users at list.isis.vanderbilt.edu
> >>>>>>>> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users
> >>>>>>>
> >>>>>>>
> >>>>>>> ===============================
> >>>>>>>   Dr. Daniel G. Waddington
> >>>>>>>   Lockheed Martin ATL
> >>>>>>>   3 Executive Campus, 6th Floor
> >>>>>>>   Cherry Hill, NJ 08002
> >>>>>>>   Tel:856 792 9740
> >>>>>>> ===============================
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> 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
> >>>>>
> >>>>>
> >>>>> ===============================
> >>>>>   Dr. Daniel G. Waddington
> >>>>>   Lockheed Martin ATL
> >>>>>   3 Executive Campus, 6th Floor
> >>>>>   Cherry Hill, NJ 08002
> >>>>>   Tel:856 792 9740
> >>>>> ===============================
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> _______________________________________________
> >>>>> easel mailing list
> >>>>> easel at atl.lmco.com
> >>>>> http://www.atl.external.lmco.com/mailman/listinfo/easel
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> 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
> >>> ===============================
> >>>  Dr. Daniel G. Waddington
> >>>  Lockheed Martin ATL
> >>>  3 Executive Campus, 6th Floor
> >>>  Cherry Hill, NJ 08002
> >>>  Tel:856 792 9740
> >>> ===============================
> >>> _______________________________________________
> >>> 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
> >
> > ===============================
> >  Dr. Daniel G. Waddington
> >  Lockheed Martin ATL
> >  3 Executive Campus, 6th Floor
> >  Cherry Hill, NJ 08002
> >  Tel:856 792 9740
> > ===============================
> >
> >
> >
> >
> > _______________________________________________
> > gme-users mailing list
> > gme-users at list.isis.vanderbilt.edu
> > http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users
> 
> ===============================
>   Dr. Daniel G. Waddington
>   Lockheed Martin ATL
>   3 Executive Campus, 6th Floor
>   Cherry Hill, NJ 08002
>   Tel:856 792 9740
> ===============================
> 
> 
> 
> 
> _______________________________________________
> gme-users mailing list
> gme-users at list.isis.vanderbilt.edu
> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users



More information about the gme-users mailing list