#define ENCODINGGRAPH_H
#include "classlist.h"
#include "structs.h"
-
-uint hashEncodingEdge(EncodingEdge *edge);
-bool equalsEncodingEdge(EncodingEdge *e1, EncodingEdge *e2);
-class EncodingSubGraph;
-
-
-typedef Hashtable<EncodingEdge *, EncodingEdge *, uintptr_t, PTRSHIFT, hashEncodingEdge, equalsEncodingEdge> HashtableEdge;
-typedef Hashset<EncodingNode *, uintptr_t, PTRSHIFT> HashsetEncodingNode;
-typedef SetIterator<EncodingNode *, uintptr_t, PTRSHIFT> SetIteratorEncodingNode;
-typedef Hashset<EncodingEdge *, uintptr_t, PTRSHIFT> HashsetEncodingEdge;
-typedef SetIterator<EncodingEdge *, uintptr_t, PTRSHIFT> SetIteratorEncodingEdge;
-
-typedef Hashtable<EncodingNode *, EncodingSubGraph *, uintptr_t, PTRSHIFT> HashtableNodeToSubGraph;
+#include "graphstructs.h"
class EncodingGraph {
public:
friend class EncodingSubGraph;
};
-class EncodingSubGraph {
- public:
- EncodingSubGraph();
- void addNode(EncodingNode *n);
- SetIteratorEncodingNode * nodeIterator();
-
- CMEMALLOC;
- private:
- uint estimateNewSize(EncodingNode *n);
- uint estimateNewSize(EncodingSubGraph *sg);
-
- HashsetEncodingNode nodes;
- uint encodingSize;
- uint numElements;
-
- friend class EncodingGraph;
-};
-
enum EdgeEncodingType { EDGE_UNASSIGNED, EDGE_BREAK, EDGE_MATCH};
typedef enum EdgeEncodingType EdgeEncodingType;