1 #ifndef __DIADES__GRAPH__GRAPHDATA__HH
2 #define __DIADES__GRAPH__GRAPHDATA__HH
6 #include <boost/serialization/split_free.hpp>
7 #include <boost/archive/text_oarchive.hpp>
8 #include <boost/archive/text_iarchive.hpp>
9 #include <boost/serialization/list.hpp>
10 #include <boost/serialization/vector.hpp>
42 template<
typename Any>
59 if(_index < _pVect->size())
61 if( !(*_pVect)[_index].valid() )
68 _index = _pVect->size();
71 "GraphIterator::constructor()");
89 while( (_index < _pVect->size())
90 && !((*_pVect)[_index].valid()))
95 "GraphIterator::operator++()");
103 while( (_index < _pVect->size()) && !((*_pVect)[_index].valid()))
108 "GraphIterator::operator++()");
116 return (_pVect == it._pVect) && (_index == it._index);
121 return !(*
this == it);
331 virtual void deleteNode(NodeIterator start,NodeIterator end);
352 virtual void deleteEdge(EdgeIterator start, EdgeIterator end);
OutEdgeIterator outEdgeEnd(const Node &node) const
InEdgeIterator inEdgeEnd(const Node &node) const
const list< SizeType > & listEdgeId() const
bool operator==(const self &it) const
InEdgeIterator inEdgeBegin(const Node &node) const
std::vector< Node >::size_type SizeType
Edge getEdge(SizeType index) const
GraphIterator< Edge > EdgeIterator
size_t operator()(const Diades::Graph::Edge &edge) const
NodeIterator nodeEnd() const
list< SizeType > _listNodeId
OutEdgeIterator outEdgeBegin(const Node &node) const
vector< Node > & vNodes()
#define ensure(Exception, expr, message)
Log log(Logger logger, const char *msg)
list< SizeType > & listEdgeId()
const vector< Node > & vNodes() const
NodeIterator nodeBegin() const
pointer operator->() const
SizeType numberOfEdges() const
vector< value_type > * _pVect
reference operator*() const
bool sanityCheck(string &log) const
size_t operator()(const Diades::Graph::Node &node) const
virtual void deleteEdge(Edge &edge)
SizeType edgeCapacity() const
list< SizeType > _listEdgeId
GraphIterator< Node > NodeIterator
ptrdiff_t difference_type
virtual void deleteAllEdges()
GraphData & operator=(const GraphData &)
list< SizeType > & listNodeId()
Namespace of the Diades project.
const Node & target(const Edge &edge) const
EdgeIterator edgeBegin() const
list< Edge >::iterator LocalEdgeIterator
const Edge & newEdge(Node source, Node target)
SizeType nodeCapacity() const
list< Edge >::iterator OutEdgeIterator
EdgeIterator edgeEnd() const
boost::adjacency_list Graph
const Node & source(const Edge &edge) const
std::forward_iterator_tag iterator_category
Node getNode(SizeType index) const
GraphIterator(vector< value_type > *pVect, SizeType index)
const list< SizeType > & listNodeId() const
bool operator!=(const self &it) const
list< Edge >::iterator InEdgeIterator
const vector< Edge > & vEdges() const
bool cycleDetection(const Node &n) const
SizeType numberOfNodes() const
virtual void deleteNode(Node &node)
#define assertion(Exception, expr, message)
vector< Edge > & vEdges()