diff -r fd82adfbe905 -r 22099ef840d7 lemon/bits/alteration_notifier.h --- a/lemon/bits/alteration_notifier.h Mon Nov 21 12:07:05 2005 +0000 +++ b/lemon/bits/alteration_notifier.h Mon Nov 21 17:48:00 2005 +0000 @@ -439,6 +439,67 @@ undir_edge_notifier.clear(); } }; + + + template + class AlterableUndirBipartiteGraphExtender : public _Base { + public: + + typedef _Base Parent; + typedef AlterableUndirBipartiteGraphExtender Graph; + + typedef typename Parent::Node Node; + typedef typename Parent::LowerNode LowerNode; + typedef typename Parent::UpperNode UpperNode; + typedef typename Parent::Edge Edge; + typedef typename Parent::UndirEdge UndirEdge; + + + typedef AlterationNotifier NodeNotifier; + typedef AlterationNotifier LowerNodeNotifier; + typedef AlterationNotifier UpperNodeNotifier; + typedef AlterationNotifier EdgeNotifier; + typedef AlterationNotifier UndirEdgeNotifier; + + protected: + + mutable NodeNotifier nodeNotifier; + mutable LowerNodeNotifier lowerNodeNotifier; + mutable UpperNodeNotifier upperNodeNotifier; + mutable EdgeNotifier edgeNotifier; + mutable UndirEdgeNotifier undirEdgeNotifier; + + public: + + NodeNotifier& getNotifier(Node) const { + return nodeNotifier; + } + + LowerNodeNotifier& getNotifier(LowerNode) const { + return lowerNodeNotifier; + } + + UpperNodeNotifier& getNotifier(UpperNode) const { + return upperNodeNotifier; + } + + EdgeNotifier& getNotifier(Edge) const { + return edgeNotifier; + } + + UndirEdgeNotifier& getNotifier(UndirEdge) const { + return undirEdgeNotifier; + } + + ~AlterableUndirBipartiteGraphExtender() { + nodeNotifier.clear(); + lowerNodeNotifier.clear(); + upperNodeNotifier.clear(); + edgeNotifier.clear(); + undirEdgeNotifier.clear(); + } + + }; /// @}