5 #ifndef ctrlplane_db_graph_base_h
6 #define ctrlplane_db_graph_base_h
8 #include <boost/graph/graph_traits.hpp>
9 #include <boost/graph/adjacency_list.hpp>
10 #include <boost/graph/properties.hpp>
15 template <
class StoredEdge>
16 struct order_by_name :
public std::binary_function<StoredEdge, StoredEdge, bool>
18 bool operator()(
const StoredEdge& e1,
const StoredEdge& e2)
const;
24 template <
class ValueType>
26 typedef std::multiset<ValueType, order_by_name<ValueType> >
type;
30 typedef disallow_parallel_edge_tag
type;
48 const std::string &
name()
const {
55 typedef boost::adjacency_list<
65 typedef boost::container_gen<graph_t::out_edge_list_selector,
boost::adjacency_list< ordered_set_by_nameS, boost::listS, boost::undirectedS, VertexProperties, EdgeProperties > graph_t
boost::graph_traits< graph_t >::edge_iterator edge_iterator
graph_t::StoredEdge StoredEdge
std::multiset< ValueType, order_by_name< ValueType > > type
disallow_parallel_edge_tag type
const std::string & name() const
boost::container_gen< graph_t::out_edge_list_selector, StoredEdge >::type OutEdgeListType
EdgeProperties(std::string name, DBGraphEdge *e)
boost::graph_traits< graph_t >::vertex_descriptor vertex_descriptor
boost::graph_traits< graph_t >::out_edge_iterator out_edge_iterator
boost::graph_traits< graph_t >::adjacency_iterator adjacency_iterator
graph_t::EdgeContainer EdgeContainer
bool operator()(const StoredEdge &e1, const StoredEdge &e2) const
boost::graph_traits< graph_t >::edge_descriptor edge_descriptor
OutEdgeListType::iterator OutEdgeIterator
uint64_t get_graph_walk_num()
EdgeContainer::value_type EdgeType