[Lemon-commits] [lemon_svn] deba: r1533 - in hugo/trunk/src/lemon: . concept
Lemon SVN
svn at lemon.cs.elte.hu
Mon Nov 6 20:46:04 CET 2006
Author: deba
Date: Mon Feb 7 11:49:44 2005
New Revision: 1533
Modified:
hugo/trunk/src/lemon/alteration_notifier.h
hugo/trunk/src/lemon/concept/graph_component.h
Log:
Documentation
Modified: hugo/trunk/src/lemon/alteration_notifier.h
==============================================================================
--- hugo/trunk/src/lemon/alteration_notifier.h (original)
+++ hugo/trunk/src/lemon/alteration_notifier.h Mon Feb 7 11:49:44 2005
@@ -321,11 +321,17 @@
public:
- EdgeNotifier& getNotifier(Edge = INVALID) const {
+ /// \brief Gives back the edge alteration notifier.
+ ///
+ /// Gives back the edge alteration notifier.
+ EdgeNotifier& getNotifier(Edge) const {
return edge_notifier;
}
- NodeNotifier& getNotifier(Node = INVALID) const {
+ /// \brief Gives back the node alteration notifier.
+ ///
+ /// Gives back the node alteration notifier.
+ NodeNotifier& getNotifier(Node) const {
return node_notifier;
}
Modified: hugo/trunk/src/lemon/concept/graph_component.h
==============================================================================
--- hugo/trunk/src/lemon/concept/graph_component.h (original)
+++ hugo/trunk/src/lemon/concept/graph_component.h Mon Feb 7 11:49:44 2005
@@ -25,6 +25,8 @@
#include <lemon/invalid.h>
#include <lemon/concept/maps.h>
+#include <lemon/alteration_notifier.h>
+
namespace lemon {
namespace concept {
@@ -571,9 +573,11 @@
/// Copy constructor.
///
GraphIncIterator(GraphIncIterator const&) {}
- /// Sets the iterator to the first edge incoming into or outgoing from the node.
+ /// Sets the iterator to the first edge incoming into or outgoing
+ /// from the node.
- /// Sets the iterator to the first edge incoming into or outgoing from the node.
+ /// Sets the iterator to the first edge incoming into or outgoing
+ /// from the node.
///
explicit GraphIncIterator(const Graph&, const typename Graph::Node&) {}
/// Invalid constructor \& conversion.
@@ -671,13 +675,46 @@
void constraints() {
checkConcept< BaseGraphComponent, _Graph>();
- checkConcept<GraphIterator<_Graph, typename _Graph::Edge>, typename _Graph::EdgeIt >();
- checkConcept<GraphIterator<_Graph, typename _Graph::Node>, typename _Graph::NodeIt >();
+ checkConcept<GraphIterator<_Graph, typename _Graph::Edge>,
+ typename _Graph::EdgeIt >();
+ checkConcept<GraphIterator<_Graph, typename _Graph::Node>,
+ typename _Graph::NodeIt >();
checkConcept<GraphIncIterator<_Graph>, typename _Graph::InEdgeIt >();
checkConcept<GraphIncIterator<_Graph>, typename _Graph::OutEdgeIt >();
}
};
+ /// An empty alteration notifier base graph class.
+
+ /// This class provides beside the core graph features
+ /// alteration notifier interface for the graph structure.
+ /// This is an observer-notifier pattern. More Obsevers can
+ /// be registered into the notifier and whenever an alteration
+ /// occured in the graph all the observers will notified about it.
+ class AlterableGraphComponent : virtual public BaseGraphComponent {
+ public:
+
+ /// The edge observer registry.
+ typedef AlterationNotifier<Edge> EdgeNotifier;
+ /// The node observer registry.
+ typedef AlterationNotifier<Node> NodeNotifier;
+
+ /// \brief Gives back the edge alteration notifier.
+ ///
+ /// Gives back the edge alteration notifier.
+ EdgeNotifier getNotifier(Edge) const {
+ return EdgeNotifier();
+ }
+
+ /// \brief Gives back the node alteration notifier.
+ ///
+ /// Gives back the node alteration notifier.
+ NodeNotifier getNotifier(Node) const {
+ return NodeNotifier();
+ }
+
+ };
+
/// Class describing the concept of graph maps
@@ -689,10 +726,22 @@
protected:
GraphMap() {}
public:
+ /// \brief Construct a new map.
+ ///
+ /// Construct a new map for the graph.
explicit GraphMap(const Graph&) {}
+ /// \brief Construct a new map with default value.
+ ///
+ /// Construct a new map for the graph and initalise the values.
GraphMap(const Graph&, const _Value&) {}
+ /// \brief Copy constructor.
+ ///
+ /// Copy Constructor.
GraphMap(const GraphMap&) {}
+ /// \brief Assign operator.
+ ///
+ /// Assign operator.
GraphMap& operator=(const GraphMap&) { return *this;}
template<typename _Map>
@@ -740,11 +789,23 @@
private:
NodeMap();
public:
- // \todo call the right parent class constructor
+ /// \brief Construct a new map.
+ ///
+ /// Construct a new map for the graph.
+ /// \todo call the right parent class constructor
explicit NodeMap(const Graph&) {}
+ /// \brief Construct a new map with default value.
+ ///
+ /// Construct a new map for the graph and initalise the values.
NodeMap(const Graph&, const _Value&) {}
+ /// \brief Copy constructor.
+ ///
+ /// Copy Constructor.
NodeMap(const NodeMap&) {}
+ /// \brief Assign operator.
+ ///
+ /// Assign operator.
NodeMap& operator=(const NodeMap&) { return *this;}
};
@@ -758,11 +819,23 @@
private:
EdgeMap();
public:
- // \todo call the right parent class constructor
+ /// \brief Construct a new map.
+ ///
+ /// Construct a new map for the graph.
+ /// \todo call the right parent class constructor
explicit EdgeMap(const Graph&) {}
+ /// \brief Construct a new map with default value.
+ ///
+ /// Construct a new map for the graph and initalise the values.
EdgeMap(const Graph&, const _Value&) {}
+ /// \brief Copy constructor.
+ ///
+ /// Copy Constructor.
EdgeMap(const EdgeMap&) {}
+ /// \brief Assign operator.
+ ///
+ /// Assign operator.
EdgeMap& operator=(const EdgeMap&) { return *this;}
};
@@ -780,24 +853,30 @@
checkConcept<BaseGraphComponent, _Graph>();
{ // int map test
typedef typename _Graph::template NodeMap<int> IntNodeMap;
- checkConcept<GraphMap<_Graph, typename _Graph::Node, int>, IntNodeMap >();
+ checkConcept<GraphMap<_Graph, typename _Graph::Node, int>,
+ IntNodeMap >();
} { // bool map test
typedef typename _Graph::template NodeMap<bool> BoolNodeMap;
- checkConcept<GraphMap<_Graph, typename _Graph::Node, bool>, BoolNodeMap >();
+ checkConcept<GraphMap<_Graph, typename _Graph::Node, bool>,
+ BoolNodeMap >();
} { // Type map test
typedef typename _Graph::template NodeMap<Type> TypeNodeMap;
- checkConcept<GraphMap<_Graph, typename _Graph::Node, Type>, TypeNodeMap >();
+ checkConcept<GraphMap<_Graph, typename _Graph::Node, Type>,
+ TypeNodeMap >();
}
{ // int map test
typedef typename _Graph::template EdgeMap<int> IntEdgeMap;
- checkConcept<GraphMap<_Graph, typename _Graph::Edge, int>, IntEdgeMap >();
+ checkConcept<GraphMap<_Graph, typename _Graph::Edge, int>,
+ IntEdgeMap >();
} { // bool map test
typedef typename _Graph::template EdgeMap<bool> BoolEdgeMap;
- checkConcept<GraphMap<_Graph, typename _Graph::Edge, bool>, BoolEdgeMap >();
+ checkConcept<GraphMap<_Graph, typename _Graph::Edge, bool>,
+ BoolEdgeMap >();
} { // Type map test
typedef typename _Graph::template EdgeMap<Type> TypeEdgeMap;
- checkConcept<GraphMap<_Graph, typename _Graph::Edge, Type>, TypeEdgeMap >();
+ checkConcept<GraphMap<_Graph, typename _Graph::Edge, Type>,
+ TypeEdgeMap >();
}
}
@@ -805,7 +884,13 @@
};
};
-
+ /// \brief An empty extendable extended graph class.
+ ///
+ /// This class provides beside the core graph features
+ /// item addition interface for the graph structure.
+ /// The difference between this class and the
+ /// \c BaseExtendableGraphComponent is that it should
+ /// notify the item alteration observers.
class ExtendableGraphComponent : virtual public BaseGraphComponent {
public:
@@ -814,10 +899,16 @@
typedef BaseGraphComponent::Node Node;
typedef BaseGraphComponent::Edge Edge;
+ /// \brief Add a node to the graph.
+ ///
+ /// Add a node to the graph and notify the observers.
Node addNode() {
return INVALID;
}
+ /// \brief Add an edge to the graph.
+ ///
+ /// Add an edge to the graph and notify the observers.
Edge addEdge(const Node& from, const Node& to) {
return INVALID;
}
@@ -834,6 +925,14 @@
_Graph& graph;
};
};
+
+ /// \brief An empty erasable extended graph class.
+ ///
+ /// This class provides beside the core graph features
+ /// item erase interface for the graph structure.
+ /// The difference between this class and the
+ /// \c BaseErasableGraphComponent is that it should
+ /// notify the item alteration observers.
class ErasableGraphComponent : virtual public BaseGraphComponent {
public:
@@ -842,7 +941,14 @@
typedef BaseGraphComponent::Node Node;
typedef BaseGraphComponent::Edge Edge;
+ /// \brief Erase the Node and notify the node alteration observers.
+ ///
+ /// Erase the Node and notify the node alteration observers.
void erase(const Node&) {}
+
+ /// \brief Erase the Edge and notify the edge alteration observers.
+ ///
+ /// Erase the Edge and notify the edge alteration observers.
void erase(const Edge&) {}
template <typename _Graph>
More information about the Lemon-commits
mailing list