X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=src%2FAST%2Forder.cc;h=82e4c5329d591b0826704c750e80cc62ff50c3c5;hb=3c33c8ed7c4600da543b2a82bcffd5aca86f0eb9;hp=609b4691e0db641ef15c24682595417b71478937;hpb=5567c0959b9e3bcdebcf3c2dfab9af3728fe25c2;p=satune.git diff --git a/src/AST/order.cc b/src/AST/order.cc index 609b469..82e4c53 100644 --- a/src/AST/order.cc +++ b/src/AST/order.cc @@ -16,6 +16,8 @@ Order::Order(OrderType _type, Set *_set) : void Order::addOrderConstraint(BooleanOrder *constraint) { constraints.push(constraint); + useditems.add(constraint->first); + useditems.add(constraint->second); } void Order::setOrderEncodingType(OrderEncodingType type) { @@ -31,9 +33,9 @@ Order *Order::clone(CSolver *solver, CloneMap *map) { return o; } -HashtableOrderPair* Order::getOrderPairTable(){ +HashtableOrderPair *Order::getOrderPairTable() { ASSERT( encoding.resolver != NULL); - if (OrderPairResolver* t = dynamic_cast(encoding.resolver)){ + if (OrderPairResolver *t = dynamic_cast(encoding.resolver)) { return t->getOrderPairTable(); } else { ASSERT(0); @@ -45,3 +47,22 @@ Order::~Order() { delete graph; } } + +void Order::serialize(Serializer *serializer) { + if (serializer->isSerialized(this)) + return; + serializer->addObject(this); + set->serialize(serializer); + ASTNodeType asttype = ORDERTYPE; + serializer->mywrite(&asttype, sizeof(ASTNodeType)); + Order *This = this; + serializer->mywrite(&This, sizeof(Order *)); + serializer->mywrite(&type, sizeof(OrderType)); + serializer->mywrite(&set, sizeof(Set *)); +} + +void Order::print() { + model_print("{Order<%p> on Set:\n", this); + set->print(); + model_print("}\n"); +}