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 <named_graph.hpp>
Public Types | |
typedef graph_traits< Graph > ::edge_descriptor | edge_descriptor |
The graph's edge descriptor. More... | |
Public Member Functions | |
lazy_add_edge (named_graph< Graph, Vertex, Edge, Config > &self, const vertex_name_type &u_name, const vertex_name_type &v_name) | |
Add an edge for the edge (u, v) based on vertex names. More... | |
lazy_add_edge (named_graph< Graph, Vertex, Edge, Config > &self, vertex_descriptor u, const vertex_name_type &v_name) | |
Add an edge for the edge (u, v) based on a vertex descriptor and name. More... | |
lazy_add_edge (named_graph< Graph, Vertex, Edge, Config > &self, const vertex_name_type &u_name, vertex_descriptor v) | |
Add an edge for the edge (u, v) based on a vertex name and descriptor. More... | |
lazy_add_edge (named_graph< Graph, Vertex, Edge, Config > &self, vertex_descriptor u, vertex_descriptor v) | |
Add an edge for the edge (u, v) based on vertex descriptors. More... | |
lazy_add_edge (const lazy_add_edge &other) | |
Copy a lazy_add_edge structure, which transfers 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 Attributes | |
named_graph< Graph, Vertex, Edge, Config > & | self |
variant< vertex_descriptor, vertex_name_type > | u |
variant< vertex_descriptor, vertex_name_type > | v |
bool | committed |
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.
typedef graph_traits<Graph>::edge_descriptor boost::graph::distributed::named_graph< Graph, Vertex, Edge, Config >::lazy_add_edge::edge_descriptor |
The graph's edge descriptor.
|
inline |
Add an edge for the edge (u, v) based on vertex names.
|
inline |
Add an edge for the edge (u, v) based on a vertex descriptor and name.
|
inline |
Add an edge for the edge (u, v) based on a vertex name and descriptor.
|
inline |
Add an edge for the edge (u, v) based on vertex descriptors.
|
inline |
Copy a lazy_add_edge structure, which transfers responsibility for adding the edge to the newly-constructed object.
References boost::graph::distributed::named_graph< Graph, Vertex, Edge, Config >::lazy_add_edge::committed.
boost::graph::distributed::named_graph< Graph, Vertex, Edge, Config >::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::graph::distributed::add_edge(), boost::process_group(), and boost::graph::distributed::send().
std::pair< typename graph_traits< Graph >::edge_descriptor, bool > boost::graph::distributed::named_graph< Graph, Vertex, Edge, Config >::lazy_add_edge::commit | ( | ) | const |
The result we will return, if we are sending a message to request that someone else add the edge.
The owner of the vertex "u"
We haven't resolved the source vertex to a descriptor yet, so it must not be local.
Send a message to the remote vertex requesting that it add the edge. The message differs depending on whether we have a vertex name or a vertex descriptor for the target.
We have resolved the source vertex to a descriptor, which may either be local or remote.
The source is local. If we need to, resolve the target vertex.
Add the edge using vertex descriptors
The source is remote. Just send a message to its owner requesting that the owner add the new edge, either directly or via the derived class's add_edge function.
References boost::graph::distributed::add_edge(), boost::graph::distributed::add_vertex(), BOOST_ASSERT, boost::process_group(), boost::graph::distributed::process_id(), boost::graph::distributed::send_oob_with_reply(), and boost::vertex_owner.
|
inline |
Returns commit().
|
mutableprotected |
|
protected |
|
mutableprotected |
|
mutableprotected |