OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DBGraph Class Reference

#include <db_graph.h>

Inheritance diagram for DBGraph:
Collaboration diagram for DBGraph:

Classes

class  edge_iterator
 
struct  EdgePredicate
 
class  vertex_iterator
 
struct  VertexPredicate
 
struct  VisitorFilter
 

Public Types

typedef
DBGraphBase::edge_descriptor 
Edge
 
typedef
DBGraphBase::vertex_descriptor 
Vertex
 
typedef boost::function< void(DBGraphVertex *)> VertexVisitor
 
typedef boost::function< void(DBGraphEdge *)> EdgeVisitor
 
typedef boost::function< void(DBGraphVertex *)> VertexFinish
 
typedef boost::tuple
< DBGraphVertex
*, DBGraphVertex
*, DBGraphEdge * > 
DBEdgeInfo
 
- Public Types inherited from DBGraphBase
typedef boost::adjacency_list
< ordered_set_by_nameS,
boost::listS,
boost::undirectedS,
VertexProperties,
EdgeProperties
graph_t
 
typedef boost::graph_traits
< graph_t >::vertex_descriptor 
vertex_descriptor
 
typedef boost::graph_traits
< graph_t >::edge_descriptor 
edge_descriptor
 
typedef boost::graph_traits
< graph_t >
::adjacency_iterator 
adjacency_iterator
 
typedef boost::graph_traits
< graph_t >::edge_iterator 
edge_iterator
 
typedef boost::graph_traits
< graph_t >::out_edge_iterator 
out_edge_iterator
 
typedef graph_t::StoredEdge StoredEdge
 
typedef boost::container_gen
< graph_t::out_edge_list_selector,
StoredEdge >::type 
OutEdgeListType
 
typedef OutEdgeListType::iterator OutEdgeIterator
 
typedef graph_t::EdgeContainer EdgeContainer
 
typedef EdgeContainer::value_type EdgeType
 

Public Member Functions

void AddNode (DBGraphVertex *entry)
 
void RemoveNode (DBGraphVertex *entry)
 
Edge Link (DBGraphVertex *lhs, DBGraphVertex *rhs, DBGraphEdge *link)
 
void Unlink (DBGraphEdge *link)
 
const graph_tgraph () const
 
DBGraphVertexvertex_data (DBGraphBase::vertex_descriptor vertex) const
 
const std::string edge_name (DBGraph::Edge edge) const
 
DBGraphEdgeedge_data (DBGraph::Edge edge) const
 
void Visit (DBGraphVertex *start, VertexVisitor vertex_visit_fn, EdgeVisitor edge_visit_fn)
 
void Visit (DBGraphVertex *start, VertexVisitor vertex_visit_fn, EdgeVisitor edge_visit_fn, const VisitorFilter &filter)
 
void Visit (DBGraphVertex *start, VertexVisitor vertex_visit_fn, EdgeVisitor edge_visit_fn, VertexFinish vertex_finish_fn)
 
edge_iterator edge_list_begin ()
 
edge_iterator edge_list_end ()
 
vertex_iterator vertex_list_begin ()
 
vertex_iterator vertex_list_end ()
 
void clear ()
 
size_t vertex_count () const
 
size_t edge_count () const
 
- Public Member Functions inherited from DBGraphBase
 DBGraphBase ()
 
uint64_t get_graph_walk_num ()
 

Private Types

typedef std::queue
< DBGraphVertex * > 
VisitQ
 

Private Member Functions

void IterateEdges (DBGraphVertex *start, OutEdgeIterator &iter_begin, OutEdgeIterator &iter_end, VertexVisitor vertex_visit_fn, EdgeVisitor edge_visit_fn, EdgePredicate &edge_test, VertexPredicate &vertex_test, uint64_t curr_walk, VisitQ &visit_queue, bool match_name=false, const std::string &allowed_edge="")
 
DBGraphVertexvertex_target (DBGraphVertex *current_vertex, DBGraphEdge *edge)
 

Private Attributes

graph_t graph_
 

Detailed Description

Definition at line 18 of file db_graph.h.

Member Typedef Documentation

Definition at line 45 of file db_graph.h.

Definition at line 20 of file db_graph.h.

typedef boost::function<void(DBGraphEdge *)> DBGraph::EdgeVisitor

Definition at line 23 of file db_graph.h.

Definition at line 21 of file db_graph.h.

typedef boost::function<void(DBGraphVertex *)> DBGraph::VertexFinish

Definition at line 24 of file db_graph.h.

typedef boost::function<void(DBGraphVertex *)> DBGraph::VertexVisitor

Definition at line 22 of file db_graph.h.

typedef std::queue<DBGraphVertex *> DBGraph::VisitQ
private

Definition at line 124 of file db_graph.h.

Member Function Documentation

void DBGraph::AddNode ( DBGraphVertex entry)

Definition at line 30 of file db_graph.cc.

Here is the call graph for this function:

void DBGraph::clear ( )

Definition at line 301 of file db_graph.cc.

size_t DBGraph::edge_count ( ) const

Definition at line 309 of file db_graph.cc.

DBGraphEdge* DBGraph::edge_data ( DBGraph::Edge  edge) const
inline

Definition at line 101 of file db_graph.h.

DBGraph::edge_iterator DBGraph::edge_list_begin ( )

Definition at line 262 of file db_graph.cc.

DBGraph::edge_iterator DBGraph::edge_list_end ( )

Definition at line 266 of file db_graph.cc.

const std::string DBGraph::edge_name ( DBGraph::Edge  edge) const
inline

Definition at line 97 of file db_graph.h.

const graph_t* DBGraph::graph ( ) const
inline

Definition at line 91 of file db_graph.h.

void DBGraph::IterateEdges ( DBGraphVertex start,
OutEdgeIterator iter_begin,
OutEdgeIterator iter_end,
VertexVisitor  vertex_visit_fn,
EdgeVisitor  edge_visit_fn,
EdgePredicate edge_test,
VertexPredicate vertex_test,
uint64_t  curr_walk,
VisitQ visit_queue,
bool  match_name = false,
const std::string &  allowed_edge = "" 
)
private

Definition at line 164 of file db_graph.cc.

Here is the call graph for this function:

DBGraph::Edge DBGraph::Link ( DBGraphVertex lhs,
DBGraphVertex rhs,
DBGraphEdge link 
)

Definition at line 41 of file db_graph.cc.

Here is the call graph for this function:

void DBGraph::RemoveNode ( DBGraphVertex entry)

Definition at line 36 of file db_graph.cc.

Here is the call graph for this function:

void DBGraph::Unlink ( DBGraphEdge link)

Definition at line 52 of file db_graph.cc.

Here is the call graph for this function:

size_t DBGraph::vertex_count ( ) const

Definition at line 305 of file db_graph.cc.

DBGraphVertex* DBGraph::vertex_data ( DBGraphBase::vertex_descriptor  vertex) const
inline

Definition at line 93 of file db_graph.h.

DBGraph::vertex_iterator DBGraph::vertex_list_begin ( )

Definition at line 293 of file db_graph.cc.

DBGraph::vertex_iterator DBGraph::vertex_list_end ( )

Definition at line 297 of file db_graph.cc.

DBGraphVertex * DBGraph::vertex_target ( DBGraphVertex current_vertex,
DBGraphEdge edge 
)
private

Definition at line 154 of file db_graph.cc.

Here is the call graph for this function:

void DBGraph::Visit ( DBGraphVertex start,
VertexVisitor  vertex_visit_fn,
EdgeVisitor  edge_visit_fn 
)

Definition at line 111 of file db_graph.cc.

Here is the call graph for this function:

void DBGraph::Visit ( DBGraphVertex start,
VertexVisitor  vertex_visit_fn,
EdgeVisitor  edge_visit_fn,
const VisitorFilter filter 
)

Definition at line 187 of file db_graph.cc.

Here is the call graph for this function:

void DBGraph::Visit ( DBGraphVertex start,
VertexVisitor  vertex_visit_fn,
EdgeVisitor  edge_visit_fn,
VertexFinish  vertex_finish_fn 
)

Definition at line 102 of file db_graph.cc.

Here is the call graph for this function:

Member Data Documentation

graph_t DBGraph::graph_
private

Definition at line 138 of file db_graph.h.


The documentation for this class was generated from the following files: