Data structure returned from add_edge that will "lazily" add the edge with a property, either when it is converted to a pair<edge_descriptor,bool>
or when the most recent copy has been destroyed.
More...
|
| lazy_add_edge_with_property (named_graph< Graph, Vertex, Edge, Config > &self, const vertex_name_type &u_name, const vertex_name_type &v_name, const edge_property_type &property) |
| Add an edge for the edge (u, v) based on vertex names. More...
|
|
| lazy_add_edge_with_property (named_graph< Graph, Vertex, Edge, Config > &self, vertex_descriptor u, const vertex_name_type &v_name, const edge_property_type &property) |
| Add an edge for the edge (u, v) based on a vertex descriptor and name. More...
|
|
| lazy_add_edge_with_property (named_graph< Graph, Vertex, Edge, Config > &self, const vertex_name_type &u_name, vertex_descriptor v, const edge_property_type &property) |
| Add an edge for the edge (u, v) based on a vertex name and descriptor. More...
|
|
| lazy_add_edge_with_property (named_graph< Graph, Vertex, Edge, Config > &self, vertex_descriptor u, vertex_descriptor v, const edge_property_type &property) |
| Add an edge for the edge (u, v) based on vertex descriptors. More...
|
|
| lazy_add_edge_with_property (const lazy_add_edge_with_property &other) |
| Copy a lazy_add_edge_with_property structure, which transfers responsibility for adding the edge to the newly-constructed object. More...
|
|
| ~lazy_add_edge_with_property () |
| 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 |
|
template<typename Graph, typename Vertex, typename Edge, typename Config>
struct boost::graph::distributed::named_graph< Graph, Vertex, Edge, Config >::lazy_add_edge_with_property
Data structure returned from add_edge that will "lazily" add the edge with a property, either when it is converted to a pair<edge_descriptor,bool>
or when the most recent copy has been destroyed.
template<typename Graph , typename Vertex , typename Edge , typename Config >
template<typename Graph , typename Vertex , typename Edge , typename Config >
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.