Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::lazy_add_edge Struct Reference

Data structure returned from add_edge that will "lazily" add the edge, either when it is converted to a pair<edge_descriptor, bool> or when the most recent copy has been destroyed. More...

#include <adjacency_list.hpp>

Collaboration diagram for boost::adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::lazy_add_edge:

Public Member Functions

 lazy_add_edge (adjacency_list &self, vertex_descriptor source, vertex_descriptor target)
 Construct a lazy request to add an edge. More...
 
 lazy_add_edge (const lazy_add_edge &other)
 Copying a lazy_add_edge transfers the responsibility for adding the edge to the newly-constructed object. More...
 
 ~lazy_add_edge ()
 If the edge has not yet been added, add the edge but don't wait for a reply. More...
 
 operator std::pair< edge_descriptor, bool > () const
 Returns commit(). More...
 
std::pair< edge_descriptor, bool > commit () const
 

Protected Member Functions

std::pair< edge_descriptor, bool > add_local_edge (const edge_property_type &property, directedS) const
 
std::pair< edge_descriptor, bool > add_local_edge (const edge_property_type &property, bidirectionalS) const
 
std::pair< edge_descriptor, bool > add_local_edge (const edge_property_type &property, undirectedS) const
 

Protected Attributes

adjacency_listself
 
vertex_descriptor source
 
vertex_descriptor target
 
bool committed
 

Detailed Description

template<typename OutEdgeListS, typename ProcessGroup, typename InVertexListS, typename InDistribution, typename DirectedS, typename VertexProperty, typename EdgeProperty, typename GraphProperty, typename EdgeListS>
struct boost::adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::lazy_add_edge

Data structure returned from add_edge that will "lazily" add the edge, either when it is converted to a pair<edge_descriptor, bool> or when the most recent copy has been destroyed.

Constructor & Destructor Documentation

template<typename OutEdgeListS , typename ProcessGroup , typename InVertexListS , typename InDistribution , typename DirectedS , typename VertexProperty , typename EdgeProperty , typename GraphProperty , typename EdgeListS >
boost::adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::lazy_add_edge::lazy_add_edge ( adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS > &  self,
vertex_descriptor  source,
vertex_descriptor  target 
)
inline

Construct a lazy request to add an edge.

template<typename OutEdgeListS , typename ProcessGroup , typename InVertexListS , typename InDistribution , typename DirectedS , typename VertexProperty , typename EdgeProperty , typename GraphProperty , typename EdgeListS >
boost::adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::lazy_add_edge::lazy_add_edge ( const lazy_add_edge &  other)
inline

Copying a lazy_add_edge transfers the responsibility for adding the edge to the newly-constructed object.

template<typename OutEdgeListS , typename ProcessGroup , typename InVertexListS , typename InDistribution , typename DirectedS , typename VertexProperty , typename EdgeProperty , typename GraphProperty , typename EdgeListS >
boost::adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::lazy_add_edge::~lazy_add_edge ( )

If the edge has not yet been added, add the edge but don't wait for a reply.

If this edge has already been created or will be created by someone else, or if someone threw an exception, we will not create the edge now.

References boost::detail::parallel::add_local_edge(), boost::graph::distributed::send(), boost::source(), and boost::target().

Member Function Documentation

template<typename OutEdgeListS , typename ProcessGroup , typename InVertexListS , typename InDistribution , typename DirectedS , typename VertexProperty , typename EdgeProperty , typename GraphProperty , typename EdgeListS >
std::pair< typename adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::edge_descriptor, bool > boost::adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::lazy_add_edge::add_local_edge ( const edge_property_type property,
directedS   
) const
protected
template<typename OutEdgeListS , typename ProcessGroup , typename InVertexListS , typename InDistribution , typename DirectedS , typename VertexProperty , typename EdgeProperty , typename GraphProperty , typename EdgeListS >
std::pair< typename adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::edge_descriptor, bool > boost::adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::lazy_add_edge::add_local_edge ( const edge_property_type property,
bidirectionalS   
) const
protected
template<typename OutEdgeListS , typename ProcessGroup , typename InVertexListS , typename InDistribution , typename DirectedS , typename VertexProperty , typename EdgeProperty , typename GraphProperty , typename EdgeListS >
std::pair< typename adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::edge_descriptor, bool > boost::adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::lazy_add_edge::add_local_edge ( const edge_property_type property,
undirectedS   
) const
protected
template<typename OutEdgeListS , typename ProcessGroup , typename InVertexListS , typename InDistribution , typename DirectedS , typename VertexProperty , typename EdgeProperty , typename GraphProperty , typename EdgeListS >
std::pair< typename adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::edge_descriptor, bool > boost::adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::lazy_add_edge::commit ( ) const
template<typename OutEdgeListS , typename ProcessGroup , typename InVertexListS , typename InDistribution , typename DirectedS , typename VertexProperty , typename EdgeProperty , typename GraphProperty , typename EdgeListS >
boost::adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::lazy_add_edge::operator std::pair< edge_descriptor, bool > ( ) const
inline

Returns commit().

Member Data Documentation

template<typename OutEdgeListS , typename ProcessGroup , typename InVertexListS , typename InDistribution , typename DirectedS , typename VertexProperty , typename EdgeProperty , typename GraphProperty , typename EdgeListS >
bool boost::adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::lazy_add_edge::committed
mutableprotected
template<typename OutEdgeListS , typename ProcessGroup , typename InVertexListS , typename InDistribution , typename DirectedS , typename VertexProperty , typename EdgeProperty , typename GraphProperty , typename EdgeListS >
adjacency_list& boost::adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::lazy_add_edge::self
protected
template<typename OutEdgeListS , typename ProcessGroup , typename InVertexListS , typename InDistribution , typename DirectedS , typename VertexProperty , typename EdgeProperty , typename GraphProperty , typename EdgeListS >
vertex_descriptor boost::adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::lazy_add_edge::source
protected
template<typename OutEdgeListS , typename ProcessGroup , typename InVertexListS , typename InDistribution , typename DirectedS , typename VertexProperty , typename EdgeProperty , typename GraphProperty , typename EdgeListS >
vertex_descriptor boost::adjacency_list< OutEdgeListS, distributedS< ProcessGroup, InVertexListS, InDistribution >, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS >::lazy_add_edge::target
protected

The documentation for this struct was generated from the following file: