Header file of Group Membership Service APIs. More...
Go to the source code of this file.
Classes | |
struct | ClGmsCallbacksT |
This callback structure is provided to the GMS library during Initialization. More... | |
struct | ClGmsClusterMemberT |
This structure describes one member (or node) of the cluster. More... | |
struct | ClGmsClusterNotificationBufferT |
Buffer to convey the view: the list of nodes and their status. More... | |
struct | ClGmsClusterNotificationT |
Buffer containing the list of nodes that forms the current view of cluster. More... | |
struct | ClGmsGroupInfoListT |
Structure used to pass the meta data on all the existing groups. More... | |
struct | ClGmsGroupInfoT |
Structure used to hold the metadata of a group. More... | |
struct | ClGmsGroupMemberT |
Structure containing attributes of a group member. More... | |
struct | ClGmsGroupNotificationBufferT |
Buffer to convey the view: the list of group member attributes. More... | |
struct | ClGmsGroupNotificationT |
Buffer containing the list of group members in the requested view. More... | |
struct | ClGmsGroupParamsT |
Parameters for group provided during group creation. More... | |
struct | ClGmsNodeAddressT |
IP Address of the node can be of IPv4 or IPv6. More... |
Macros | |
#define | CL_GMS_INELIGIBLE_CREDENTIALS 0x0 |
The credential value which will not be considered during leader election. | |
#define | CL_GMS_INVALID_GROUP_ID -1 |
Invalid group ID. | |
#define | CL_GMS_INVALID_HANDLE ((ClGmsHandleT)0) |
Invalid svc handle. | |
#define | CL_GMS_INVALID_NODE_ID 0xffffffff |
Indicates the invalid value of the node Id. | |
#define | CL_GMS_LOCAL_NODE_ID 0XFFFFFFFF |
Indicates the local node. | |
#define | CL_GMS_MAX_ADDRESS_LENGTH 64 |
Maximum length of the address value. | |
#define | LEADER_ELECTION_ALGORITHM "LeaderElectionAlgorithm" |
Name of the Function to be defined in the Leader Election algorithm plugin. |
Typedefs | |
typedef struct ClGmsCallbacksT | ClGmsCallbacksT |
This callback structure is provided to the GMS library during Initialization. | |
typedef enum ClGmsClusterChangesT | ClGmsClusterChangesT |
Enumerator and structure for the node status notification for tracking nodes. | |
typedef void(* | ClGmsClusterMemberGetCallbackT )(CL_IN ClInvocationT invocation, CL_IN const ClGmsClusterMemberT *clusterMember, CL_IN ClRcT rc) |
Callback for asynchronous cluster member query. | |
typedef void(* | ClGmsClusterTrackCallbackT )(CL_IN const ClGmsClusterNotificationBufferT *notificationBuffer, CL_IN ClUint32T numberOfMembers, CL_IN ClRcT rc) |
Callback for tracking cluster view changes. | |
typedef enum ClGmsGroupChangesT | ClGmsGroupChangesT |
Enumerator and structure of member status notification. | |
typedef ClUint32T | ClGmsGroupIdT |
System-wide unique ID of the group. | |
typedef struct ClGmsGroupInfoListT | ClGmsGroupInfoListT |
Structure used to pass the meta data on all the existing groups. | |
typedef struct ClGmsGroupInfoT | ClGmsGroupInfoT |
Structure used to hold the metadata of a group. | |
typedef void(* | ClGmsGroupMemberGetCallbackT )(CL_IN ClInvocationT invocation, CL_IN const ClGmsGroupMemberT *groupMember, CL_IN ClRcT rc) |
Callback for asynchronous group member query. | |
typedef ClNameT | ClGmsGroupNameT |
System-wide unique name of the group. | |
typedef struct ClGmsGroupNotificationT | ClGmsGroupNotificationT |
Buffer containing the list of group members in the requested view. | |
typedef struct ClGmsGroupParamsT | ClGmsGroupParamsT |
Parameters for group provided during group creation. | |
typedef void(* | ClGmsGroupTrackCallbackT )(CL_IN ClGmsGroupIdT groupId, CL_IN const ClGmsGroupNotificationBufferT *notificationBuffer, CL_IN ClUint32T numberOfMembers, CL_IN ClRcT rc) |
Callback for tracking group view changes. | |
typedef ClHandleT | ClGmsHandleT |
Handle for using the GMS API. | |
typedef ClUint32T | ClGmsLeadershipCredentialsT |
Credentials for leader election. | |
typedef ClUint32T | ClGmsMemberIdT |
Group-unique ID of a member. | |
typedef ClNameT | ClGmsMemberNameT |
Group-unique name of the member. | |
typedef enum ClGmsNodeAddressFamilyT | ClGmsNodeAddressFamilyT |
This type defines the family to which the address of the node belongs. | |
typedef struct ClGmsNodeAddressT | ClGmsNodeAddressT |
IP Address of the node can be of IPv4 or IPv6. | |
typedef ClUint32T | ClGmsNodeIdT |
Node ID – Unique and consistent identifier of a node. | |
typedef enum ClGmsTrackFlagsT | ClGmsTrackFlagsT |
Flags for tracking request flag. |
Enumerations | |
enum | ClGmsClusterChangesT { CL_GMS_NODE_NO_CHANGE = 1, CL_GMS_NODE_JOINED = 2, CL_GMS_NODE_LEFT = 3, CL_GMS_NODE_RECONFIGURED = 4 } |
Enumerator and structure for the node status notification for tracking nodes. More... | |
enum | ClGmsGroupChangesT { CL_GMS_MEMBER_NO_CHANGE = 1, CL_GMS_MEMBER_JOINED = 2, CL_GMS_MEMBER_LEFT = 3, CL_GMS_MEMBER_RECONFIGURED = 4, CL_GMS_LEADER_ELECT_API_REQUEST = 5 } |
Enumerator and structure of member status notification. More... | |
enum | ClGmsMemberEjectReasonT { CL_GMS_MEMBER_EJECT_REASON_UNKNOWN = 0, CL_GMS_MEMBER_EJECT_REASON_API_REQUEST = 1 } |
Reason codes for ejecting the user from cluster/group. More... | |
enum | ClGmsNodeAddressFamilyT { CL_GMS_AF_INET = 1, CL_GMS_AF_INET6 = 2 } |
This type defines the family to which the address of the node belongs. More... | |
enum | ClGmsTrackFlagsT { CL_GMS_TRACK_CURRENT = 0x01, CL_GMS_TRACK_CHANGES = 0x02, CL_GMS_TRACK_CHANGES_ONLY = 0x04 } |
Flags for tracking request flag. More... |
Functions | |
struct ClGmsClusterMemberT | __attribute__ ((__aligned__(8))) |
This structure describes one member (or node) of the cluster. | |
ClRcT | clGmsClusterMemberGet (CL_IN ClGmsHandleT gmsHandle, CL_IN ClGmsNodeIdT nodeId, CL_IN ClTimeT timeout, CL_OUT ClGmsClusterMemberT *clusterMember) |
Returns cluster member information. | |
ClRcT | clGmsClusterMemberGetAsync (CL_IN ClGmsHandleT gmsHandle, CL_IN ClInvocationT invocation, CL_IN ClGmsNodeIdT nodeId) |
Returns information on the cluster node asynchronously. | |
ClRcT | clGmsClusterTrack (CL_IN ClGmsHandleT gmsHandle, CL_IN ClUint8T trackFlags, CL_INOUT ClGmsClusterNotificationBufferT *notificationBuffer) |
Configures the cluster tracking mode. | |
ClRcT | clGmsClusterTrackStop (CL_IN ClGmsHandleT gmsHandle) |
Stops all the clusters tracking. | |
ClRcT | clGmsDispatch (ClGmsHandleT clmHandle, ClDispatchFlagsT dispatchFlags) |
Dispatch API as per SAF symantics for dispatching the pending callbacks. | |
ClRcT | clGmsFinalize (CL_IN ClGmsHandleT gmsHandle) |
Cleans up the GMS library. | |
ClRcT | clGmsInitialize (CL_OUT ClGmsHandleT *gmsHandle, CL_IN const ClGmsCallbacksT *gmsCallbacks, CL_INOUT ClVersionT *version) |
Initializes the GMS library and registers the callback functions. | |
ClRcT | clGmsSelectionObjectGet (ClGmsHandleT clmHandle, ClSelectionObjectT *pSelectionObject) |
The selection object fd provided by GMS client on which the user can poll for any callbacks as per SAF symantics. |
Variables | |
ClGmsClusterChangesT | clusterChange |
Describes the change in the cluster view since last notification. | |
ClGmsNodeIdT | deputy |
Node marked as deputy. | |
ClGmsNodeIdT | leader |
Node ID of current leader. | |
ClBoolT | leadershipChanged |
To check whether the leader has changed since the last view. | |
ClGmsClusterNotificationT * | notification |
Array of nodes. | |
ClUint32T | numberOfItems |
Length of notification array. |
Header file of Group Membership Service APIs.
ClGmsMemberIdT deputy |
Node marked as deputy.
Member marked as deputy.
ClGmsMemberIdT leader |
Node ID of current leader.
Member ID of leader.
ClBoolT leadershipChanged |
To check whether the leader has changed since the last view.
To check whether leader has changed since the last notification.
ClGmsGroupNotificationT * notification |
Array of nodes.
Array of members.