GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES > Class Template Reference

List of all members.

Public Types

typedef adjacency_list< vecS,
vecS, directedS, property
< vertex_properties_t,
VERTEXPROPERTIES >, property
< edge_properties_t,
EDGEPROPERTIES, property
< edge_weight_t, double > > > 
Graph
typedef graph_traits< Graph >
::vertex_descriptor 
Vertex
typedef graph_traits< Graph >
::edge_descriptor 
Edge
typedef std::pair< Edge, EdgeEdgePair
typedef graph_traits< Graph >
::vertex_iterator 
vertex_iterator
typedef graph_traits< Graph >
::edge_iterator 
edge_iterator
typedef graph_traits< Graph >
::adjacency_iterator 
adjacency_iterator
typedef graph_traits< Graph >
::out_edge_iterator 
out_edge_iterator
typedef graph_traits< Graph >
::degree_size_type 
degree_size_type
typedef std::pair
< adjacency_iterator,
adjacency_iterator
adjacency_vertex_range_t
typedef std::pair
< out_edge_iterator,
out_edge_iterator
out_edge_range_t
typedef std::pair
< vertex_iterator,
vertex_iterator
vertex_range_t
typedef std::pair
< edge_iterator, edge_iterator
edge_range_t

Public Member Functions

 GraphWrapper ()
 GraphWrapper (const GraphWrapper &g)
virtual ~GraphWrapper ()
void clear ()
Vertex addVertex (const VERTEXPROPERTIES &prop)
void removeVertex (const Vertex &v)
EdgePair addBidirEdge (const Vertex &v1, const Vertex &v2, const EDGEPROPERTIES &prop_12, const EDGEPROPERTIES &prop_21)
Edge addEdge (const Vertex &v1, const Vertex &v2, const EDGEPROPERTIES &prop)
VERTEXPROPERTIES & properties (const Vertex &v)
const VERTEXPROPERTIES & properties (const Vertex &v) const
EDGEPROPERTIES & properties (const Edge &v)
const EDGEPROPERTIES & properties (const Edge &v) const
VERTEXPROPERTIES & getSourceProp (const Edge &e)
VERTEXPROPERTIES & getTargetProp (const Edge &e)
GraphgetGraph ()
vertex_range_t getVertices () const
edge_range_t getEdges () const
adjacency_vertex_range_t getAdjacentVertices (const Vertex &v) const
int getVertexCount () const
int getVertexDegree (const Vertex &v) const
Vertex getVertex (const int &index)
Vertex getSource (const Edge &e)
Vertex getTarget (const Edge &e)
std::pair< Edge, bool > getEdge (const Vertex &src, const Vertex &dst)
GraphWrapperoperator= (const GraphWrapper &rhs)

Protected Attributes

Graph graph

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
class GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >


Member Typedef Documentation

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
typedef graph_traits<Graph>::adjacency_iterator GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::adjacency_iterator
template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
typedef std::pair<adjacency_iterator, adjacency_iterator> GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::adjacency_vertex_range_t
template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
typedef graph_traits<Graph>::degree_size_type GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::degree_size_type
template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
typedef graph_traits<Graph>::edge_descriptor GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::Edge
template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
typedef graph_traits<Graph>::edge_iterator GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::edge_iterator
template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
typedef std::pair<edge_iterator, edge_iterator> GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::edge_range_t
template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
typedef std::pair<Edge, Edge> GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::EdgePair
template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
typedef adjacency_list< vecS, vecS, directedS, property<vertex_properties_t, VERTEXPROPERTIES>, property<edge_properties_t, EDGEPROPERTIES, property<edge_weight_t, double> > > GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::Graph

This is the adjacency_list customized and aliased to the name Graph.

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
typedef graph_traits<Graph>::out_edge_iterator GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::out_edge_iterator
template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
typedef std::pair<out_edge_iterator, out_edge_iterator> GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::out_edge_range_t
template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
typedef graph_traits<Graph>::vertex_descriptor GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::Vertex
template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
typedef graph_traits<Graph>::vertex_iterator GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::vertex_iterator
template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
typedef std::pair<vertex_iterator, vertex_iterator> GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::vertex_range_t

Constructor & Destructor Documentation

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::GraphWrapper (  )  [inline]

00091         {}

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::GraphWrapper ( const GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES > &  g  )  [inline]

00094                                             :
00095                 graph(g.graph)
        {}

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
virtual GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::~GraphWrapper (  )  [inline, virtual]

00098         {}


Member Function Documentation

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
EdgePair GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::addBidirEdge ( const Vertex v1,
const Vertex v2,
const EDGEPROPERTIES &  prop_12,
const EDGEPROPERTIES &  prop_21 
) [inline]

00123         {
00124                 /* TODO: maybe one wants to check if this edge could be inserted */
00125                 Edge addedEdge1 = add_edge(v1, v2, graph).first;
00126                 Edge addedEdge2 = add_edge(v2, v1, graph).first;
00127 
00128                 properties(addedEdge1) = prop_12;
00129                 properties(addedEdge2) = prop_21;
00130 
00131                 return EdgePair(addedEdge1, addedEdge2);
00132         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
Edge GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::addEdge ( const Vertex v1,
const Vertex v2,
const EDGEPROPERTIES &  prop 
) [inline]

00135         {
00136                 /* TODO: maybe one wants to check if this edge could be inserted */
00137                 Edge addedEdge;
00138                 bool rc;
00139                 tie(addedEdge,rc)= add_edge(v1, v2, graph);
00140 
00141                 properties(addedEdge) = prop;
00142                 
00143                 return addedEdge;
00144         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
Vertex GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::addVertex ( const VERTEXPROPERTIES &  prop  )  [inline]

00108         {
00109                 Vertex v = add_vertex(graph);
00110                 properties(v) = prop;
00111                 return v;
00112         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
void GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::clear (  )  [inline]

00103         {
00104                 graph.clear();
00105         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
adjacency_vertex_range_t GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::getAdjacentVertices ( const Vertex v  )  const [inline]

00199         {
00200                 return adjacent_vertices(v, graph);
00201         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
std::pair<Edge,bool> GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::getEdge ( const Vertex src,
const Vertex dst 
) [inline]

00226         {
00227                 return edge(src, dst, graph);
00228         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
edge_range_t GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::getEdges (  )  const [inline]

00194         {
00195                 return edges(graph);
00196         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
Graph& GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::getGraph (  )  [inline]

00184         {
00185                 return graph;
00186         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
Vertex GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::getSource ( const Edge e  )  [inline]

00217                                         {
00218             return source(e, graph);
00219         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
VERTEXPROPERTIES& GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::getSourceProp ( const Edge e  )  [inline]

00172                                                        {
00173             return properties(source(e, graph));
00174         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
Vertex GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::getTarget ( const Edge e  )  [inline]

00221                                         {
00222             return target(e, graph);
00223         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
VERTEXPROPERTIES& GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::getTargetProp ( const Edge e  )  [inline]

00176                                                        {
00177             return properties(target(e, graph));
00178         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
Vertex GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::getVertex ( const int &  index  )  [inline]

00213                                             {
00214                 return vertex(index,graph);
00215         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
int GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::getVertexCount (  )  const [inline]

00204         {
00205                 return num_vertices(graph);
00206         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
int GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::getVertexDegree ( const Vertex v  )  const [inline]

00209         {
00210                 return out_degree(v, graph);
00211         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
vertex_range_t GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::getVertices (  )  const [inline]

00189         {
00190                 return vertices(graph);
00191         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
GraphWrapper& GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::operator= ( const GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES > &  rhs  )  [inline]

00233         {
00234                 graph = rhs.graph;
00235                 return *this;
00236         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
const EDGEPROPERTIES& GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::properties ( const Edge v  )  const [inline]

00167         {
00168                 typename property_map<Graph, edge_properties_t>::const_type param = get(edge_properties, graph);
00169                 return param[v];
00170         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
EDGEPROPERTIES& GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::properties ( const Edge v  )  [inline]

00161         {
00162                 typename property_map<Graph, edge_properties_t>::type param = get(edge_properties, graph);
00163                 return param[v];
00164         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
const VERTEXPROPERTIES& GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::properties ( const Vertex v  )  const [inline]

00155         {
00156                 typename property_map<Graph, vertex_properties_t>::const_type param = get(vertex_properties, graph);
00157                 return param[v];
00158         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
VERTEXPROPERTIES& GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::properties ( const Vertex v  )  [inline]

00149         {
00150                 typename property_map<Graph, vertex_properties_t>::type param = get(vertex_properties, graph);
00151                 return param[v];
00152         }

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
void GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::removeVertex ( const Vertex v  )  [inline]

00117         {
00118                 clear_vertex(v, graph);
00119                 remove_vertex(v, graph);
00120         }


Member Data Documentation

template<typename VERTEXPROPERTIES, typename EDGEPROPERTIES>
Graph GraphWrapper< VERTEXPROPERTIES, EDGEPROPERTIES >::graph [protected]

The documentation for this class was generated from the following file:
Generated on Thu Jun 14 17:12:42 2012 for PAL by  doxygen 1.6.3