//Marcus Daniels, personal email, July 31, 1999 #import #import // VarProbe #ifndef USE_SWARMOBJECT #import // CreateDrop @interface MyObject: CreateDrop #else #import @interface MyObject: SwarmObject #endif { int i; float f; double d; } @end @implementation MyObject + createBegin: aZone { MyObject *obj = [super createBegin: aZone]; obj->i = 1; obj->f = 2.0; obj->d = 3.0; return obj; } @end static id makeProbe (id obj, const char *ivarName) { #ifndef USE_SWARMOBJECT id probe = [VarProbe createBegin: [obj getZone]]; [probe setProbedClass: [obj getClass]]; [probe setProbedVariable: ivarName]; return [probe createEnd]; #else return [obj getProbeForVariable: ivarName]; #endif } static double getDouble (id obj, const char *ivarName) { id probe = makeProbe (obj, ivarName); double ret = [probe probeAsDouble: obj]; [probe drop]; return ret; } static int getInt (id obj, const char *ivarName) { id probe = makeProbe (obj, ivarName); int ret = [probe probeAsInt: obj]; [probe drop]; return ret; } int main (int argc, const char **argv) { id obj; initSwarmBatch (argc, argv); obj = [MyObject create: globalZone]; printf ("%d %f %f\n", getInt (obj, "i"), getDouble (obj, "f"), getDouble (obj, "d")); return 0; } /* Local Variables: compile-command: "/opt/gnu/bin/gcc -o varprobe -g -DUSE_SWARMOBJECT -Wno-import -L/opt/SUNWtcl/8.0/sun4/lib -R/opt/SUNWtcl/8.0/sun4/lib -L/opt/SDGblt/2.4g/lib -R/opt/SDGblt/2.4g/lib -L/opt/SDGlibffi/1.20/lib -R/opt/SDGlibffi/1.20/lib -L/opt/SDGswarm/1.4.1/lib -L/opt/SDGzlib/1.1.3/lib -L/usr/local/X11/lib -R/usr/local/X11/lib -L/usr/openwin/lib -R/usr/openwin/lib -L/opt/SDGhdf5/1.0.1/lib -I/opt/SDGswarm/1.4.1/include varprobe.m -lanalysis -lsimtools -lsimtoolsgui -lactivity -ltkobjc -lrandom -lobjectbase -ldefobj -lcollections -lmisc -ltclobjc -ltk8.0 -ltcl8.0 -lBLT -lsocket -ldl -lnsl -L/usr/openwin/lib -lhdf5 -lpng -lz -lXpm -lX11 -lffi -lm -lobjc -lpthread -lposix4" End: */