src/lemon/extendable_graph_extender.h
changeset 953 d9c115e2eeaf
child 980 0f1044b7a3af
equal deleted inserted replaced
-1:000000000000 0:5c531867d7ab
       
     1 // -*- c++ -*-
       
     2 
       
     3 #ifndef LEMON_EXTENDABLE_GRAPH_EXTENDER_H
       
     4 #define LEMON_EXTENDABLE_GRAPH_EXTENDER_H
       
     5 
       
     6 namespace lemon {
       
     7 
       
     8   template <typename _Base> 
       
     9   class ExtendableGraphExtender : public _Base {
       
    10   public:
       
    11 
       
    12     typedef ExtendableGraphExtender Graph;
       
    13     typedef _Base Parent;
       
    14 
       
    15     typedef typename Parent::Node Node;
       
    16     typedef typename Parent::Edge Edge;
       
    17 
       
    18     Node addNode() {
       
    19       Node node = Parent::addNode();
       
    20       Parent::getNodeObserverRegistry().add(node);
       
    21       return node;
       
    22     }
       
    23     
       
    24     Edge addEdge(const Node& from, const Node& to) {
       
    25       Edge edge = Parent::addEdge(from, to);
       
    26       Parent::getEdgeObserverRegistry().add(edge);
       
    27       return edge;
       
    28     }
       
    29 
       
    30   };
       
    31 
       
    32 }
       
    33 
       
    34 #endif