[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