swarm-support
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]