3 #include "GenericHashtable.h"
11 ght=genallocatehashtable((unsigned int (*)(void *)) & hashelement,(int (*)(void *,void *)) & elementequals);
14 WorkSet::WorkSet(unsigned int (*hashf)(void *),int (*equals)(void *,void *)) {
15 ght=genallocatehashtable(hashf,equals);
18 WorkSet::WorkSet(bool) {
19 ght=genallocatehashtable(NULL,NULL);
23 genfreehashtable(ght);
26 void WorkSet::addobject(void *obj) {
30 genputtable(ght,obj,obj);
34 void WorkSet::removeobject(void *obj) {
38 bool WorkSet::contains(void *obj) {
39 return (gencontains(ght,obj)==1);
42 void * WorkSet::firstelement() {
46 return ght->list->src;
49 Iterator * WorkSet::getiterator() {
50 return new Iterator(ght);
53 void * WorkSet::getnextelement(void *src) {
54 return getnext(ght,src);
57 void * WorkSet::getelement(int i) {
58 void *v=firstelement();
70 bool WorkSet::isEmpty() {
77 for (int i=0; i<size(); i++)
79 Element *elem = (Element *) getelement(i);
92 Iterator::Iterator(struct genhashtable *ght) {
93 gi=gengetiterator(ght);
96 Iterator::~Iterator() {
100 void * Iterator::next() {