public:
WorkList();
~WorkList();
+ void reset();
void add(int id, int type, int lvalue, int rvalue);
int hasMoreElements();
int getid();
return numelements;
}
int count(int key);
-
+ void addAll(SimpleHash * set);
+ SimpleHash * imageSet(int key);
};
/* SimpleHashExcepion *************************************************/
class SimpleIterator {
public:
- struct ArraySimple *cur;
- int index;
- SimpleHash * table;
+ struct ArraySimple *cur, *tail;
+ int index,tailindex;
+ // SimpleHash * table;
inline SimpleIterator() {}
- inline SimpleIterator(struct ArraySimple *start, SimpleHash *t) {
+ inline SimpleIterator(struct ArraySimple *start, struct ArraySimple *tl, int tlindex/*, SimpleHash *t*/) {
cur = start;
- table=t;
+ // table=t;
index=0;
+ tailindex=tlindex;
+ tail=tl;
}
inline int hasNext() {
+ if (cur==tail &&
+ index==tailindex)
+ return 0;
while((index==ARRAYSIZE)||!cur->nodes[index].inuse) {
- if (cur->nextarray==0 &&
- index==table->tailindex)
- return 0;
if (index==ARRAYSIZE) {
index=0;
cur=cur->nextarray;
RepairHashNode *next;
RepairHashNode *lnext;
int data;
+ int data2;
int setrelation;
int lvalue;
int rvalue;
int rule;
- RepairHashNode(int setrelation, int rule, int lvalue, int rvalue, int data);
+ int ismodify;
+ RepairHashNode(int setrelation, int rule, int lvalue, int rvalue, int data, int data2,int ismodify);
};
class RepairHash {
~RepairHash();
int addset(int setv, int rule, int value, int data);
int addrelation(int relation, int rule, int lvalue, int rvalue, int data);
+ int addrelation(int relation, int rule, int lvalue, int rvalue, int data, int data2);
bool containsset(int setv, int rule, int value);
bool containsrelation(int relation, int rule, int lvalue, int rvalue);
int getset(int setv, int rule, int value);
int getrelation(int relation, int rule, int lvalue, int rvalue);
+ int getrelation2(int relation, int rule, int lvalue, int rvalue);
+ int ismodify(int relation, int rule, int lvalue, int rvalue);
};
#endif