edits
[satune.git] / src / AST / table.h
index d9a0c185f32d685d316f796f8306740d788dc36c..c196d3cf0801db83449123b45905663ba7e1b80d 100644 (file)
@@ -4,14 +4,29 @@
 #include "mymemory.h"
 #include "structs.h"
 
-struct Table {
-       ArraySet domains;
+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);
+       void serialize(Serializer *serializer);
+       void print();
+       ~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;
+       HashsetTableEntry *entries;
 };
 
-Table *allocTable(Set **domains, uint numDomain, Set *range);
-void addNewTableEntry(Table *This, uint64_t *inputs, uint inputSize, uint64_t result);
-TableEntry *getTableEntryFromTable(Table *table, uint64_t *inputs, uint inputSize);
-void deleteTable(Table *This);
 #endif