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

#include <policy_graph.h>

Inheritance diagram for PolicyGraph:
Collaboration diagram for PolicyGraph:

Classes

class  open_vertex_reverse_iterator
 

Public Types

typedef
PolicyGraphBase::edge_descriptor 
Edge
 
typedef
PolicyGraphBase::vertex_descriptor 
Vertex
 
typedef
boost::intrusive::member_hook
< PolicyGraphVertex,
boost::intrusive::list_member_hook
<>,&PolicyGraphVertex::open_vertex_
OpenVertexListMember
 
typedef boost::intrusive::list
< PolicyGraphVertex,
OpenVertexListMember
OpenVertexList
 
typedef OpenVertexList::iterator OpenVertexIterator
 
typedef std::pair
< PolicyGraphVertex
*, PolicyGraphEdge * > 
OpenVertexPathPair
 
- Public Types inherited from PolicyGraphBase
typedef boost::adjacency_list
< boost::setS, boost::listS,
boost::bidirectionalS,
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 boost::graph_traits
< graph_t >::in_edge_iterator 
in_edge_iterator
 
typedef
graph_t::inv_adjacency_iterator 
inv_adjacency_iterator
 

Public Member Functions

void AddNode (PolicyGraphVertex *entry)
 
void RemoveNode (PolicyGraphVertex *entry)
 
Edge Link (PolicyGraphVertex *lhs, PolicyGraphVertex *rhs)
 
void Unlink (PolicyGraphVertex *lhs, PolicyGraphVertex *rhs)
 
void SetEdgeProperty (PolicyGraphEdge *edge)
 
PolicyGraphEdgeGetEdge (const PolicyGraphVertex *src, const PolicyGraphVertex *tgt)
 
const graph_tgraph () const
 
PolicyGraphVertexvertex_data (Vertex vertex) const
 
PolicyGraphEdgeedge_data (PolicyGraph::Edge edge) const
 
void clear ()
 
size_t vertex_count () const
 
size_t edge_count () const
 
void WriteDot (const std::string &fname) const
 
OpenVertexIterator open_vertex_begin ()
 
OpenVertexIterator open_vertex_end ()
 
void AddOpenVertex (PolicyGraphVertex *vertex)
 
void RemoveOpenVertex (PolicyGraphVertex *vertex)
 
open_vertex_reverse_iterator begin (PolicyGraphVertex *open)
 
open_vertex_reverse_iterator end (PolicyGraphVertex *open)
 
PolicyGraphVertexGetRoot () const
 

Private Attributes

graph_t root_
 
OpenVertexList open_vertex_list_
 

Detailed Description

Definition at line 17 of file policy_graph.h.

Member Typedef Documentation

typedef OpenVertexList::iterator PolicyGraph::OpenVertexIterator

Definition at line 26 of file policy_graph.h.

Definition at line 25 of file policy_graph.h.

typedef boost::intrusive::member_hook<PolicyGraphVertex, boost::intrusive::list_member_hook<>, &PolicyGraphVertex::open_vertex_> PolicyGraph::OpenVertexListMember

Definition at line 23 of file policy_graph.h.

Definition at line 67 of file policy_graph.h.

Member Function Documentation

void PolicyGraph::AddNode ( PolicyGraphVertex entry)

Definition at line 23 of file policy_graph.cc.

Here is the call graph for this function:

void PolicyGraph::AddOpenVertex ( PolicyGraphVertex vertex)

Definition at line 82 of file policy_graph.cc.

open_vertex_reverse_iterator PolicyGraph::begin ( PolicyGraphVertex open)
inline

Definition at line 94 of file policy_graph.h.

void PolicyGraph::clear ( )

Definition at line 62 of file policy_graph.cc.

size_t PolicyGraph::edge_count ( ) const

Definition at line 70 of file policy_graph.cc.

PolicyGraphEdge* PolicyGraph::edge_data ( PolicyGraph::Edge  edge) const
inline

Definition at line 47 of file policy_graph.h.

open_vertex_reverse_iterator PolicyGraph::end ( PolicyGraphVertex open)
inline

Definition at line 98 of file policy_graph.h.

PolicyGraphEdge * PolicyGraph::GetEdge ( const PolicyGraphVertex src,
const PolicyGraphVertex tgt 
)

Definition at line 51 of file policy_graph.cc.

Here is the call graph for this function:

PolicyGraphVertex * PolicyGraph::GetRoot ( ) const

Definition at line 91 of file policy_graph.cc.

const graph_t* PolicyGraph::graph ( ) const
inline

Definition at line 41 of file policy_graph.h.

PolicyGraph::Edge PolicyGraph::Link ( PolicyGraphVertex lhs,
PolicyGraphVertex rhs 
)

Definition at line 34 of file policy_graph.cc.

Here is the call graph for this function:

PolicyGraph::OpenVertexIterator PolicyGraph::open_vertex_begin ( )

Definition at line 74 of file policy_graph.cc.

PolicyGraph::OpenVertexIterator PolicyGraph::open_vertex_end ( )

Definition at line 78 of file policy_graph.cc.

void PolicyGraph::RemoveNode ( PolicyGraphVertex entry)

Definition at line 29 of file policy_graph.cc.

Here is the call graph for this function:

void PolicyGraph::RemoveOpenVertex ( PolicyGraphVertex vertex)

Definition at line 86 of file policy_graph.cc.

void PolicyGraph::SetEdgeProperty ( PolicyGraphEdge edge)

Definition at line 46 of file policy_graph.cc.

Here is the call graph for this function:

void PolicyGraph::Unlink ( PolicyGraphVertex lhs,
PolicyGraphVertex rhs 
)

Definition at line 42 of file policy_graph.cc.

Here is the call graph for this function:

size_t PolicyGraph::vertex_count ( ) const

Definition at line 66 of file policy_graph.cc.

PolicyGraphVertex* PolicyGraph::vertex_data ( Vertex  vertex) const
inline

Definition at line 43 of file policy_graph.h.

void PolicyGraph::WriteDot ( const std::string &  fname) const

Definition at line 15 of file policy_graph.cc.

Member Data Documentation

OpenVertexList PolicyGraph::open_vertex_list_
private

Definition at line 105 of file policy_graph.h.

graph_t PolicyGraph::root_
private

Definition at line 104 of file policy_graph.h.


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