40 } |
40 } |
41 |
41 |
42 }; |
42 }; |
43 |
43 |
44 template <typename _Base> |
44 template <typename _Base> |
45 class ClearableUndirGraphExtender : public _Base { |
45 class ClearableUGraphExtender : public _Base { |
46 public: |
46 public: |
47 |
47 |
48 typedef ClearableUndirGraphExtender Graph; |
48 typedef ClearableUGraphExtender Graph; |
49 typedef _Base Parent; |
49 typedef _Base Parent; |
50 typedef typename Parent::Node Node; |
50 typedef typename Parent::Node Node; |
51 typedef typename Parent::UndirEdge UndirEdge; |
51 typedef typename Parent::UEdge UEdge; |
52 typedef typename Parent::Edge Edge; |
52 typedef typename Parent::Edge Edge; |
53 |
53 |
54 void clear() { |
54 void clear() { |
55 Parent::getNotifier(Node()).clear(); |
55 Parent::getNotifier(Node()).clear(); |
56 Parent::getNotifier(UndirEdge()).clear(); |
56 Parent::getNotifier(UEdge()).clear(); |
57 Parent::getNotifier(Edge()).clear(); |
57 Parent::getNotifier(Edge()).clear(); |
58 Parent::clear(); |
58 Parent::clear(); |
59 } |
59 } |
60 }; |
60 }; |
61 |
61 |
62 template <typename _Base> |
62 template <typename _Base> |
63 class ClearableUndirEdgeSetExtender : public _Base { |
63 class ClearableUEdgeSetExtender : public _Base { |
64 public: |
64 public: |
65 |
65 |
66 typedef ClearableUndirEdgeSetExtender Graph; |
66 typedef ClearableUEdgeSetExtender Graph; |
67 typedef _Base Parent; |
67 typedef _Base Parent; |
68 typedef typename Parent::Node Node; |
68 typedef typename Parent::Node Node; |
69 typedef typename Parent::UndirEdge UndirEdge; |
69 typedef typename Parent::UEdge UEdge; |
70 typedef typename Parent::Edge Edge; |
70 typedef typename Parent::Edge Edge; |
71 |
71 |
72 void clear() { |
72 void clear() { |
73 Parent::getNotifier(UndirEdge()).clear(); |
73 Parent::getNotifier(UEdge()).clear(); |
74 Parent::getNotifier(Edge()).clear(); |
74 Parent::getNotifier(Edge()).clear(); |
75 Parent::clear(); |
75 Parent::clear(); |
76 } |
76 } |
77 |
77 |
78 }; |
78 }; |
79 |
79 |
80 |
80 |
81 template <typename _Base> |
81 template <typename _Base> |
82 class ClearableUndirBipartiteGraphExtender : public _Base { |
82 class ClearableUBipartiteGraphExtender : public _Base { |
83 public: |
83 public: |
84 |
84 |
85 typedef _Base Parent; |
85 typedef _Base Parent; |
86 typedef ClearableUndirBipartiteGraphExtender Graph; |
86 typedef ClearableUBipartiteGraphExtender Graph; |
87 |
87 |
88 typedef typename Parent::Node Node; |
88 typedef typename Parent::Node Node; |
89 typedef typename Parent::LowerNode LowerNode; |
89 typedef typename Parent::LowerNode LowerNode; |
90 typedef typename Parent::UpperNode UpperNode; |
90 typedef typename Parent::UpperNode UpperNode; |
91 typedef typename Parent::Edge Edge; |
91 typedef typename Parent::Edge Edge; |
92 typedef typename Parent::UndirEdge UndirEdge; |
92 typedef typename Parent::UEdge UEdge; |
93 |
93 |
94 void clear() { |
94 void clear() { |
95 Parent::getNotifier(Edge()).clear(); |
95 Parent::getNotifier(Edge()).clear(); |
96 Parent::getNotifier(UndirEdge()).clear(); |
96 Parent::getNotifier(UEdge()).clear(); |
97 Parent::getNotifier(Node()).clear(); |
97 Parent::getNotifier(Node()).clear(); |
98 Parent::getNotifier(LowerNode()).clear(); |
98 Parent::getNotifier(LowerNode()).clear(); |
99 Parent::getNotifier(UpperNode()).clear(); |
99 Parent::getNotifier(UpperNode()).clear(); |
100 Parent::clear(); |
100 Parent::clear(); |
101 } |
101 } |