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