Merge branch 'master' of ssh://plrg.eecs.uci.edu/home/git/constraint_compiler
[satune.git] / src / AST / table.h
index 2bb98051f02c6ec5eefc902c3765cebda393d3b4..6c7926e80e04f42c1437b9d10df5132198efb3a8 100644 (file)
@@ -2,10 +2,29 @@
 #define TABLE_H
 #include "classlist.h"
 #include "mymemory.h"
+#include "structs.h"
 
-struct Table {
+class Table {
+public:
+       Table(Set **domains, uint numDomain, Set *range);
+       void addNewTableEntry(uint64_t *inputs, uint inputSize, uint64_t result);
+       TableEntry *getTableEntry(uint64_t *inputs, uint inputSize);
+       Table *clone(CSolver *solver, CloneMap *map);
+       ~Table();
+       Set * getRange() {return range;}
+       
+       Set * getDomain(uint i) {return domains.get(i);}
+       uint numDomains() {return domains.getSize();}
+       SetIteratorTableEntry * getEntries() {return entries->iterator();}
+       uint getSize() {return entries->getSize();}
 
+       CMEMALLOC;
+       
+ private:
+       Array<Set *> domains;
+       Set *range;
+       HashsetTableEntry *entries;
 };
 
-Table * allocTable();
 #endif