5 #include "ordergraph.h"
7 #include "orderpairresolver.h"
9 Order::Order(OrderType _type, Set *_set) :
17 void Order::addOrderConstraint(BooleanOrder *constraint) {
18 constraints.push(constraint);
21 void Order::setOrderEncodingType(OrderEncodingType type) {
25 Order *Order::clone(CSolver *solver, CloneMap *map) {
26 Order *o = (Order *)map->get(this);
29 o = solver->createOrder(type, set->clone(solver, map));
34 HashtableOrderPair* Order::getOrderPairTable(){
35 ASSERT( encoding.resolver != NULL);
36 if (OrderPairResolver* t = dynamic_cast<OrderPairResolver*>(encoding.resolver)){
37 return t->getOrderPairTable();
49 void Order::serialize(Serializer* serializer){
50 if(serializer->isSerialized(this))
52 serializer->addObject(this);
53 set->serialize(serializer);
54 ASTNodeType asttype = ORDERTYPE;
55 serializer->mywrite(&asttype, sizeof(ASTNodeType));
57 serializer->mywrite(&This, sizeof(Order*));
58 serializer->mywrite(&type, sizeof(OrderType));
59 serializer->mywrite(&set, sizeof(Set *));
63 model_println("{Order on Set:");