/*Marcus Daniels October 12, 1999 Use setKey: instead of findNext:. findNext: is for Collection *values*. */ #import #import #import @interface Recruiter: CreateDrop { int serialNumber; } - setSerialNumber: (int)serialNumber; - (void)describe: stream; @end @implementation Recruiter - setSerialNumber: (int)theSerialNumber { serialNumber = theSerialNumber; return self; } - (void)describe: stream { printf ("[Recruiter] serial Number: %d\n", serialNumber); } @end #define RECRUITER(serialNumber) \ [[[Recruiter createBegin: globalZone] \ setSerialNumber: serialNumber] \ createEnd] @interface Offer: CreateDrop { int offerValue; } - setOfferValue: (int)offerValue; - (void)describe: stream; @end @implementation Offer - setOfferValue: (int)theOfferValue { offerValue = theOfferValue; return self; } - (void)describe: stream { printf ("[Offer] value: %d\n", offerValue); } @end #define OFFER(offerValue) \ [[[Offer createBegin: globalZone] \ setOfferValue: offerValue] \ createEnd] int main (int argc, const char **argv) { initSwarm (argc, argv); { id renewalMap; id r1, r2, r3, o1, o2, o3; renewalMap = [Map create: globalZone]; r1 = RECRUITER (1); o1 = OFFER (10); [renewalMap at: r1 insert: o1]; r2 = RECRUITER (2); o2 = OFFER (20); [renewalMap at: r2 insert: o2]; r3 = RECRUITER (3); o3 = OFFER (30); [renewalMap at: r3 insert: o3]; #if 0 [renewalMap removeKey: r2]; #else { id renewalMapIndex = [renewalMap begin: scratchZone]; [renewalMapIndex setKey: r2]; [renewalMapIndex remove]; [renewalMapIndex drop]; } #endif xfprint (renewalMap); } } /* Local Variables: compile-command: "/opt/SDGswarm/2.0.1/bin/libtool-swarm --mode=link gcc -o mapRemoveCompare -g -Wno-import -I/opt/SDGswarm/2.0.1/include -L/opt/SDGswarm/2.0.1/lib mapRemoveCompare.m -lswarm -lobjc" End: */