X-Git-Url: http://plrg.eecs.uci.edu/git/?p=repair.git;a=blobdiff_plain;f=Repair%2FRepairInterpreter%2FRelation.h;fp=Repair%2FRepairInterpreter%2FRelation.h;h=7b9083f1fa7ab2763870dca12d11b64db2b1d01a;hp=0000000000000000000000000000000000000000;hb=be34c81d43fc69f77c813151c794198ed914a492;hpb=3469d127f4a400205edf2663a33e53258f934be7 diff --git a/Repair/RepairInterpreter/Relation.h b/Repair/RepairInterpreter/Relation.h new file mode 100755 index 0000000..7b9083f --- /dev/null +++ b/Repair/RepairInterpreter/Relation.h @@ -0,0 +1,44 @@ +#ifndef Relation_H +#define Relation_h +#include "classlist.h" + +class Tuple { + public: + Tuple(void *l,void *r); + Tuple(); + bool isnull(); + void *left,*right; +}; + + + +#define WRELATION_SINGDOMAIN 0x1 +#define WRELATION_MANYDOMAIN 0x2 +#define WRELATION_SINGRANGE 0x10 +#define WRELATION_MANYRANGE 0x20 + +class WorkRelation { + public: + WorkRelation(); + WorkRelation(bool); + ~WorkRelation(); + bool contains(void *key, void *object); + Tuple firstelement(); + Tuple getnextelement(void *left, void *right); + void put(void *key, void *object); + void remove(void *key, void *object); + WorkSet* getset(void *key); + void* getobj(void *key); + WorkSet* invgetset(void *key); + void* invgetobj(void *key); + void print(); + + private: + void destroyer(struct genhashtable *d); + bool flag; + struct genhashtable *forward, *inverse; +}; +#endif + + +