#define READBUFFERSIZE 16384
-Deserializer::Deserializer(const char *file) :
+Deserializer::Deserializer(const char *file, InterpreterType itype) :
buffer((char *) ourmalloc(READBUFFERSIZE)),
bufferindex(0),
bufferbytes(0),
if (filedesc < 0) {
exit(-1);
}
+ if (itype != SATUNE) {
+ solver->setInterpreter(itype);
+ }
}
Deserializer::~Deserializer() {
case BOOLEANVAR:
deserializeBooleanVar();
break;
+ case BOOLCONST:
+ deserializeBooleanConst();
+ break;
case ORDERCONST:
deserializeBooleanOrder();
break;
map.put(b, solver->getBooleanVar(vtype).getBoolean());
}
+void Deserializer::deserializeBooleanConst() {
+ BooleanVar *b;
+ myread(&b, sizeof(BooleanVar *));
+ bool istrue;
+ myread(&istrue, sizeof(bool));
+ map.put(b, istrue ? solver->getBooleanTrue().getBoolean() :
+ solver->getBooleanFalse().getBoolean());
+}
+
void Deserializer::deserializeBooleanOrder() {
BooleanOrder *bo_ptr;
myread(&bo_ptr, sizeof(BooleanOrder *));