Order* allocOrder(OrderType type, Set * set){
- Order* order = (Order*)ourmalloc(sizeof(Order));
- order->set=set;
- order->constraints = allocDefVectorBoolean();
- order->type=type;
- return order;
+ Order* order = (Order*)ourmalloc(sizeof(Order));
+ order->set=set;
+ allocInlineDefVectorBoolean(& order->constraints);
+ order->type=type;
+ allocOrderEncoding(& order->order, order);
+ order->boolsToConstraints = NULL;
+ return order;
+}
+
+void initializeOrderHashTable(Order* order){
+ order->boolsToConstraints= allocHashTableBoolConst(HT_INITIAL_CAPACITY, HT_DEFAULT_FACTOR);
+}
+
+void addOrderConstraint(Order* order, BooleanOrder* constraint){
+ pushVectorBoolean( &order->constraints, (Boolean*) constraint);
+}
+
+void setOrderEncodingType(Order* order, OrderEncodingType type){
+ order->order.type = type;
}
void deleteOrder(Order* order){
- uint size = getSizeVectorBoolean( order->constraints );
- for(uint i=0; i<size; i++){
- deleteBoolean( getVectorBoolean(order->constraints, i) );
- }
- deleteSet( order->set);
- ourfree(order);
-}
\ No newline at end of file
+ deleteVectorArrayBoolean(& order->constraints);
+ deleteOrderEncoding(& order->order);
+ if(order->boolsToConstraints!= NULL) {
+ resetAndDeleteHashTableBoolConst(order->boolsToConstraints);
+ deleteHashTableBoolConst(order->boolsToConstraints);
+ }
+ ourfree(order);
+}