Merging + fixing memory bugs
[satune.git] / src / AST / table.h
index 8027f88046199120915df5c2ab8f43e8e58f4d34..bd5bf182bfff4eebb7c6623e79991d009a395fdc 100644 (file)
@@ -4,13 +4,25 @@
 #include "mymemory.h"
 #include "structs.h"
 
-struct Table {
-    VectorSet* domains;
-    Set * range;
-    VectorTableEntry* entries;
-};
+class Table {
+public:
+       Table(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;}
+
+       SetIteratorTableEntry *getEntries() {return entries->iterator();}
+       uint getSize() {return entries->getSize();}
 
-Table * allocTable(Set **domains, uint numDomain, Set * range);
-void addNewTableEntry(Table* table, uint64_t* inputs, uint inputSize, uint64_t result);
+       CMEMALLOC;
+
+private:
+       Set *range;
+       HashsetTableEntry *entries;
+};
 
 #endif