![]() |
fpmas 1.6
|
#include <sync_mode.h>
Public Member Functions | |
virtual void | link (api::graph::DistributedEdge< T > *edge)=0 |
virtual void | unlink (api::graph::DistributedEdge< T > *edge)=0 |
virtual void | removeNode (api::graph::DistributedNode< T > *node)=0 |
virtual void | synchronize ()=0 |
Synchronized linker API.
The behavior of this component can be very different depending on the implemented synchronization mode. See the corresponding implementations for more details.
Notified link, unlink or node removal operations correspond to intentional user operations. Internal and low-level operations that might occur while distributing the graph for example are not notified to the SyncLinker.
Whatever the synchronization mode is, it is guaranteed that when the next synchronize() call returns, all notified operations are committed and applied globally.
For example, if removeNode() is called with a DISTANT node as argument, the local representation of the node (and its linked DISTANT edges) might be deleted from the local graph, but it is guaranteed that the Node and its linked edges are globally removed from the global graph (i.e. also from other processes, including the process that owns the node) only when synchronize() is called.
|
pure virtual |
Notifies the specified edge has been linked.
edge | linked edge |
Implemented in fpmas::synchro::ghost::GhostSyncLinkerBase< T >, and fpmas::synchro::hard::hard_link::HardSyncLinker< T >.
|
pure virtual |
Notifies the specified edge must be unlinked.
edge | edge to unlink |
Implemented in fpmas::synchro::ghost::GhostSyncLinkerBase< T >, and fpmas::synchro::hard::hard_link::HardSyncLinker< T >.
|
pure virtual |
Notifies the specified node must be removed.
node | node to remove |
Implemented in fpmas::synchro::ghost::GhostSyncLinkerBase< T >, and fpmas::synchro::hard::hard_link::HardSyncLinker< T >.
|
pure virtual |
Synchronizes link, unlink and node removal operations across the processes.
Implemented in fpmas::synchro::ghost::GhostSyncLinker< T >, fpmas::synchro::hard::hard_link::HardSyncLinker< T >, and fpmas::synchro::hard::ghost_link::HardSyncLinker< T >.