[great-users] RE: [gme-users] querying crosslinks from user library code

Attila Vizhanyo viza at isis.vanderbilt.edu
Fri Oct 14 10:21:26 CDT 2005


If you include the domain specific API files in a C++ project, then Udm
will create and manage some global static variables to represent the
corresponding meta information.
These variables are needed to use the DS-API, and there most be a
singleton instance of each meta class within the process.
When you specify a user code library in a GReAT transformation, that
library is linked into a DLL, that the GReAT engine will load
dynamically during runtime.
The dll already contains the DS API files, so your user code library
typically should not include the DS .cpp files, because if it does, then
two separate instances of each meta class will coexist within the same
process.
This way your library will not be self-contained, because it is missing
some class definitions, but the linker will resolve the meta class
object references when linking the DLL.
 
HTH,
Attila
 
-----Original Message-----
From: gme-users-bounces at list.isis.vanderbilt.edu
[mailto:gme-users-bounces at list.isis.vanderbilt.edu] On Behalf Of Aditya
Agrawal
Sent: Friday, October 14, 2005 8:09 AM
To: gme-users
Subject: RE: [gme-users] querying crosslinks from user library code
 
Hi Mat,
 
I have queried and established cross links through Attribute Mapping
code in the past. When I did do it I used UDM's generic API because we
didn't support the specific API then. 
 
It seems that you are calling external code in Attribute Mapping, if
that's the case then you will need to have all three paradigm's, start,
cross, end's .h file included in the custom code for it to work.
 
I hope this is the right direction.
 
Thanks,
Adi
 
  _____  

From: gme-users-bounces at list.isis.vanderbilt.edu
[mailto:gme-users-bounces at list.isis.vanderbilt.edu] On Behalf Of Matthew
J. Emerson
Sent: Thursday, October 13, 2005 6:20 PM
To: gme-users
Subject: [gme-users] querying crosslinks from user library code
 
Is it supposed to be legal to query crosslink connections set up in a
GReAT transformation from user library code? I've been testing this out,
and it doesn't seem to work.
 
In a rule, I can successfully match a pattern involving a crosslink
connection from a source object to a destination object. Then, I pass
the source object in as the parameter to a function implemented in my
library using an AttributeMapping block. Inside the library function, I
try and find the same destination object using the same crosslink
connection. This never returns the object, even though obviously I had
to have successfully matched it in the rule for library function to even
get called. Is this something that's supposed to work?
 
--Matt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.isis.vanderbilt.edu/pipermail/great-users/attachments/20051014/844e2638/attachment.htm


More information about the great-users mailing list