[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Map question: findNext does not work the way I expected
From: |
Marcus G. Daniels |
Subject: |
Re: Map question: findNext does not work the way I expected |
Date: |
12 Oct 1999 16:33:51 -0700 |
User-agent: |
Gnus/5.070084 (Pterodactyl Gnus v0.84) Emacs/20.4 |
>>>>> "PJ" == Paul Johnson <address@hidden> writes:
PJ> How could I use this renewalMapIndex differently, to find and
PJ> remove?
Use setKey: instead of findNext:. findNext: is for Collection *values*.
#import <simtools.h>
#import <defobj/Create.h>
#import <collections.h>
@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 <Map> 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:
*/
==================================
Swarm-Support is for discussion of the technical details of the day
to day usage of Swarm. For list administration needs (esp.
[un]subscribing), please send a message to <address@hidden>
with "help" in the body of the message.