X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=src%2FAST%2Ftable.h;h=c196d3cf0801db83449123b45905663ba7e1b80d;hb=bb457e194713776587cab5987fc418160b406e76;hp=90f50015071d9c701c9c76310602ee0da1813de4;hpb=0df63892a80f76f06bd39c6e8852cd4f80ff0c05;p=satune.git diff --git a/src/AST/table.h b/src/AST/table.h index 90f5001..c196d3c 100644 --- a/src/AST/table.h +++ b/src/AST/table.h @@ -4,13 +4,29 @@ #include "mymemory.h" #include "structs.h" -struct Table { - ArraySet domains; - Set * range; - VectorTableEntry entries; +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 domains; + Set *range; + HashsetTableEntry *entries; }; -Table * allocTable(Set **domains, uint numDomain, Set * range); -void addNewTableEntry(Table* table, uint64_t* inputs, uint inputSize, uint64_t result); -void deleteTable(Table* table); #endif