#include "structs.h"
class BooleanIterator {
- public:
- BooleanIterator(CSolver * _solver);
+public:
+ BooleanIterator(CSolver *_solver);
~BooleanIterator();
bool hasNext();
- Boolean * next();
+ Boolean *next();
CMEMALLOC;
- private:
- SetIteratorBooleanEdge * solverit;
+
+private:
+ SetIteratorBooleanEdge *solverit;
HashsetBoolean discovered;
Vector<Boolean *> boolean;
Vector<uint> index;
};
class ElementIterator {
- public:
+public:
+ ElementIterator(CSolver *_solver);
+ ~ElementIterator();
+ bool hasNext();
+ Element *next();
CMEMALLOC;
- private:
+
+private:
BooleanIterator bit;
-};
+ BooleanPredicate *base;
+ uint baseindex;
+ HashsetElement discovered;
+
+ Vector<Element *> element;
+ Vector<uint> index;
+ void updateNext();
+};
#endif