Convert structs to classes...
[satune.git] / src / Backend / satencoder.h
index dee131dc5b4dd584962e0e20d000d76fcad8f3c9..f74965b4af8ac92333ca5041d3487e7cacbd7ae7 100644 (file)
@@ -5,32 +5,33 @@
 #include "structs.h"
 #include "inc_solver.h"
 #include "constraint.h"
 #include "structs.h"
 #include "inc_solver.h"
 #include "constraint.h"
-
-struct SATEncoder {
-       uint varcount;
-       CNF *cnf;
-       CSolver *solver;
-};
-
 #include "satelemencoder.h"
 #include "satorderencoder.h"
 #include "satfunctableencoder.h"
 
 #include "satelemencoder.h"
 #include "satorderencoder.h"
 #include "satfunctableencoder.h"
 
-SATEncoder *allocSATEncoder(CSolver *solver);
-void deleteSATEncoder(SATEncoder *This);
-void encodeAllSATEncoder(CSolver *csolver, SATEncoder *This);
-Edge getNewVarSATEncoder(SATEncoder *This);
-void getArrayNewVarsSATEncoder(SATEncoder *encoder, uint num, Edge *carray);
-Edge encodeConstraintSATEncoder(SATEncoder *This, Boolean *constraint);
-Edge encodeVarSATEncoder(SATEncoder *This, BooleanVar *constraint);
-Edge encodeLogicSATEncoder(SATEncoder *This, BooleanLogic *constraint);
-Edge encodePredicateSATEncoder(SATEncoder *This, BooleanPredicate *constraint);
-Edge encodeTablePredicateSATEncoder(SATEncoder *This, BooleanPredicate *constraint);
 
 
+class SATEncoder {
+ public:
+       uint varcount;
+       CNF *cnf;
+       CSolver *solver;
+
+       SATEncoder(CSolver *solver);
+       ~SATEncoder();
+       void encodeAllSATEncoder(CSolver *csolver);
+       Edge encodeConstraintSATEncoder(Boolean *constraint);
+       MEMALLOC;
+};
 
 
 
 
-void encodeElementSATEncoder(SATEncoder *encoder, Element *This);
-void encodeElementFunctionSATEncoder(SATEncoder *encoder, ElementFunction *This);
-void encodeTableElementFunctionSATEncoder(SATEncoder *encoder, ElementFunction *This);
+       Edge getNewVarSATEncoder(SATEncoder *This);
+       void getArrayNewVarsSATEncoder(SATEncoder *encoder, uint num, Edge *carray);
 
 
+       Edge encodeVarSATEncoder(SATEncoder *This, BooleanVar *constraint);
+       Edge encodeLogicSATEncoder(SATEncoder *This, BooleanLogic *constraint);
+       Edge encodePredicateSATEncoder(SATEncoder *This, BooleanPredicate *constraint);
+       Edge encodeTablePredicateSATEncoder(SATEncoder *This, BooleanPredicate *constraint);
+       void encodeElementSATEncoder(SATEncoder *encoder, Element *This);
+       void encodeElementFunctionSATEncoder(SATEncoder *encoder, ElementFunction *This);
+       void encodeTableElementFunctionSATEncoder(SATEncoder *encoder, ElementFunction *This);
 #endif
 #endif