1.1 --- a/src/work/deba/node_map_base.h Fri Apr 16 08:26:00 2004 +0000
1.2 +++ b/src/work/deba/node_map_base.h Fri Apr 16 12:13:07 2004 +0000
1.3 @@ -8,18 +8,34 @@
1.4
1.5 typedef K KeyType;
1.6
1.7 + NodeMapBase() : graph(0) {}
1.8 + NodeMapBase(Graph& g) : graph(&g) {
1.9 + graph->node_maps.add(*this);
1.10 + }
1.11
1.12 - MapBase() : graph(0) {}
1.13 - MapBase(Graph& g) : graph(&g) {graph.node_maps.add(*this);}
1.14 -
1.15 - virtual ~MapBase() {graph.node_maps.erase(*this);}
1.16 -
1.17 + virtual ~NodeMapBase() {
1.18 + if (graph) {
1.19 + graph.node_maps.erase(*this);
1.20 + }
1.21 + }
1.22 +
1.23 protected:
1.24
1.25 Graph* graph;
1.26
1.27 int graph_index;
1.28
1.29 + void init() {
1.30 + for (Graph::NodeIt it(g); g.valid(it); g.next(it)) {
1.31 + add(it);
1.32 + }
1.33 + }
1.34 +
1.35 + void destroy() {
1.36 + for (Graph::NodeIt it(g); g.valid(it); g.next(it)) {
1.37 + erase(it);
1.38 + }
1.39 + }
1.40
1.41 virtual void add(const KeyType&) = 0;
1.42 virtual void erase(const KeyType&) = 0;