src/lemon/extendable_graph_extender.h
changeset 946 c94ef40a22ce
child 980 0f1044b7a3af
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/src/lemon/extendable_graph_extender.h	Wed Oct 27 22:38:50 2004 +0000
     1.3 @@ -0,0 +1,34 @@
     1.4 +// -*- c++ -*-
     1.5 +
     1.6 +#ifndef LEMON_EXTENDABLE_GRAPH_EXTENDER_H
     1.7 +#define LEMON_EXTENDABLE_GRAPH_EXTENDER_H
     1.8 +
     1.9 +namespace lemon {
    1.10 +
    1.11 +  template <typename _Base> 
    1.12 +  class ExtendableGraphExtender : public _Base {
    1.13 +  public:
    1.14 +
    1.15 +    typedef ExtendableGraphExtender Graph;
    1.16 +    typedef _Base Parent;
    1.17 +
    1.18 +    typedef typename Parent::Node Node;
    1.19 +    typedef typename Parent::Edge Edge;
    1.20 +
    1.21 +    Node addNode() {
    1.22 +      Node node = Parent::addNode();
    1.23 +      Parent::getNodeObserverRegistry().add(node);
    1.24 +      return node;
    1.25 +    }
    1.26 +    
    1.27 +    Edge addEdge(const Node& from, const Node& to) {
    1.28 +      Edge edge = Parent::addEdge(from, to);
    1.29 +      Parent::getEdgeObserverRegistry().add(edge);
    1.30 +      return edge;
    1.31 +    }
    1.32 +
    1.33 +  };
    1.34 +
    1.35 +}
    1.36 +
    1.37 +#endif