fpmas 1.6
Public Member Functions | List of all members
fpmas::synchro::hard::api::LinkServer Class Referenceabstract

#include <client_server.h>

Inheritance diagram for fpmas::synchro::hard::api::LinkServer:
Inheritance graph
[legend]
Collaboration diagram for fpmas::synchro::hard::api::LinkServer:
Collaboration graph
[legend]

Public Member Functions

virtual void lockUnlink (DistributedId edge_id)=0
 
virtual bool isLockedUnlink (DistributedId edge_id)=0
 
virtual void unlockUnlink (DistributedId edge_id)=0
 
virtual void lockRemoveNode (DistributedId node_id)=0
 
virtual bool isLockedRemoveNode (DistributedId node_id)=0
 
virtual void unlockRemoveNode (DistributedId node_id)=0
 
- Public Member Functions inherited from fpmas::synchro::hard::api::Server
virtual void setEpoch (Epoch epoch)=0
 
virtual Epoch getEpoch () const =0
 
virtual void handleIncomingRequests ()=0
 

Detailed Description

LinkServer API.

Adds nothing to the Server API.

Member Function Documentation

◆ lockUnlink()

virtual void fpmas::synchro::hard::api::LinkServer::lockUnlink ( DistributedId  edge_id)
pure virtual

Locks the unlink operation on the edge corresponding to edge_id.

isLockedUnlink(edge_id) will return true until unlockUnlink(edge_id) is called.

Note
This is notably used by the LinkClient when an UNLINK operation is initialized from the local process. While the operation is performed, the unlink operation is locked so that UNLINK requests for the same edge coming from other processes will be ignored.
Parameters
edge_idid of the edge to unlink

Implemented in fpmas::synchro::hard::hard_link::LinkServer< T >.

◆ isLockedUnlink()

virtual bool fpmas::synchro::hard::api::LinkServer::isLockedUnlink ( DistributedId  edge_id)
pure virtual

Returns true is an unlink operation has been locked for the edge corresponding to edge_id.

Parameters
edge_idid of the edge to unlink
Returns
true iff an unlink operation is locked

Implemented in fpmas::synchro::hard::hard_link::LinkServer< T >.

◆ unlockUnlink()

virtual void fpmas::synchro::hard::api::LinkServer::unlockUnlink ( DistributedId  edge_id)
pure virtual

Releases an unlink operation on the edge corresponding to edge_id.

Parameters
edge_idid of the unlinked edge

Implemented in fpmas::synchro::hard::hard_link::LinkServer< T >.

◆ lockRemoveNode()

virtual void fpmas::synchro::hard::api::LinkServer::lockRemoveNode ( DistributedId  node_id)
pure virtual

Locks a remove operation on a local node, represented by node_id.

This should be called as soon as possible when the remove node operation is initialized. Incoming unlink or remove operations received while the local remove node operation is locked will then be handled consistently to avoid unexpected behaviors.

Parameters
node_idid of the local node to remove

Implemented in fpmas::synchro::hard::hard_link::LinkServer< T >.

◆ isLockedRemoveNode()

virtual bool fpmas::synchro::hard::api::LinkServer::isLockedRemoveNode ( DistributedId  node_id)
pure virtual

Checks if a remove operation is locked on the local node represented by node_id.

Parameters
node_idlocal node id

Implemented in fpmas::synchro::hard::hard_link::LinkServer< T >.

◆ unlockRemoveNode()

virtual void fpmas::synchro::hard::api::LinkServer::unlockRemoveNode ( DistributedId  node_id)
pure virtual

Unlocks a remove node operation previously applied on the local node represented by node_id.

Parameters
node_idlocal node id

Implemented in fpmas::synchro::hard::hard_link::LinkServer< T >.


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