X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=src%2Fcsolver.cc;h=ce749b13c27b20d1645383f86e27f5101e3a6234;hb=3c0ccc94fed7aeec6c3de6c27708e31807a56021;hp=3c6767f585078bba9c0037afa6b259acb02282c2;hpb=99d1bc0007e1ec7899cc6e60c98bbfb337c94731;p=satune.git diff --git a/src/csolver.cc b/src/csolver.cc index 3c6767f..ce749b1 100644 --- a/src/csolver.cc +++ b/src/csolver.cc @@ -19,6 +19,8 @@ #include "integerencoding.h" #include "qsort.h" #include "preprocess.h" +#include "serializer.h" +#include "deserializer.h" CSolver::CSolver() : boolTrue(BooleanEdge(new BooleanConst(true))), @@ -84,6 +86,25 @@ CSolver *CSolver::clone() { return copy; } +void CSolver::serialize() { + model_print("serializing ...\n"); + { + Serializer serializer("dump"); + SetIteratorBooleanEdge *it = getConstraints(); + while (it->hasNext()) { + BooleanEdge b = it->next(); + serializeBooleanEdge(&serializer, b); + } + delete it; + } + model_print("deserializing ...\n"); + { + Deserializer deserializer("dump"); + deserializer.deserialize(); + } + +} + Set *CSolver::createSet(VarType type, uint64_t *elements, uint numelements) { Set *set = new Set(type, elements, numelements); allSets.push(set);