[Lemon-commits] [lemon_svn] deba: r455 - hugo/trunk/src/work/deba

Lemon SVN svn at lemon.cs.elte.hu
Mon Nov 6 20:39:32 CET 2006


Author: deba
Date: Fri Apr 16 14:13:07 2004
New Revision: 455

Modified:
   hugo/trunk/src/work/deba/edge_map_base.h
   hugo/trunk/src/work/deba/node_map_base.h

Log:


Modified: hugo/trunk/src/work/deba/edge_map_base.h
==============================================================================
--- hugo/trunk/src/work/deba/edge_map_base.h	(original)
+++ hugo/trunk/src/work/deba/edge_map_base.h	Fri Apr 16 14:13:07 2004
@@ -5,20 +5,37 @@
 class EdgeMapBase {
 public:
 	typedef G Graph;
+
 	typedef K KeyType;
 	
-
-	MapBase() : graph(0) {}
-	MapBase(Graph& g) : graph(&g) {graph.edge_maps.add(*this);}
-
-	virtual ~MapBase() {graph.edge_maps.erase(*this);}	
-
+	EdgeMapBase() : graph(0) {}
+	EdgeMapBase(Graph& g) : graph(&g) {
+		graph->edge_maps.add(*this);
+	}
+
+	virtual ~EdgeMapBase() {
+		if (graph) {
+			graph.edge_maps.erase(*this);
+		}
+	}
+	
 protected:
 	
 	Graph* graph;
 
 	int graph_index;
 	
+	void init() {
+		for (Graph::EdgeIt it(g); g.valid(it); g.next(it)) {
+			add(it);
+		}
+	}
+	
+	void destroy() {
+		for (Graph::EdgeIt it(g); g.valid(it); g.next(it)) {
+			erase(it);
+		}
+	}
 	
 	virtual void add(const KeyType&) = 0;
 	virtual void erase(const KeyType&) = 0;

Modified: hugo/trunk/src/work/deba/node_map_base.h
==============================================================================
--- hugo/trunk/src/work/deba/node_map_base.h	(original)
+++ hugo/trunk/src/work/deba/node_map_base.h	Fri Apr 16 14:13:07 2004
@@ -8,18 +8,34 @@
 
 	typedef K KeyType;
 	
-
-	MapBase() : graph(0) {}
-	MapBase(Graph& g) : graph(&g) {graph.node_maps.add(*this);}
-
-	virtual ~MapBase() {graph.node_maps.erase(*this);}	
-
+	NodeMapBase() : graph(0) {}
+	NodeMapBase(Graph& g) : graph(&g) {
+		graph->node_maps.add(*this);
+	}
+
+	virtual ~NodeMapBase() {
+		if (graph) {
+			graph.node_maps.erase(*this);
+		}
+	}
+	
 protected:
 	
 	Graph* graph;
 
 	int graph_index;
 	
+	void init() {
+		for (Graph::NodeIt it(g); g.valid(it); g.next(it)) {
+			add(it);
+		}
+	}
+	
+	void destroy() {
+		for (Graph::NodeIt it(g); g.valid(it); g.next(it)) {
+			erase(it);
+		}
+	}
 	
 	virtual void add(const KeyType&) = 0;
 	virtual void erase(const KeyType&) = 0;



More information about the Lemon-commits mailing list