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. More... | |
| typedef void(* | ClGmsClusterMemberGetCallbackT) (CL_IN ClInvocationT invocation, CL_IN const ClGmsClusterMemberT *clusterMember, CL_IN ClRcT rc) |
| Callback for asynchronous cluster member query. More... | |
| typedef void(* | ClGmsClusterTrackCallbackT) (CL_IN const ClGmsClusterNotificationBufferT *notificationBuffer, CL_IN ClUint32T numberOfMembers, CL_IN ClRcT rc) |
| Callback for tracking cluster view changes. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
| typedef ClHandleT | ClGmsHandleT |
| Handle for using the GMS API. More... | |
| typedef ClUint32T | ClGmsLeadershipCredentialsT |
| Credentials for leader election. More... | |
| 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. More... | |
| ClRcT | clGmsClusterMemberGet (CL_IN ClGmsHandleT gmsHandle, CL_IN ClGmsNodeIdT nodeId, CL_IN ClTimeT timeout, CL_OUT ClGmsClusterMemberT *clusterMember) |
| Returns cluster member information. More... | |
| ClRcT | clGmsClusterMemberGetAsync (CL_IN ClGmsHandleT gmsHandle, CL_IN ClInvocationT invocation, CL_IN ClGmsNodeIdT nodeId) |
| Returns information on the cluster node asynchronously. More... | |
| ClRcT | clGmsClusterTrack (CL_IN ClGmsHandleT gmsHandle, CL_IN ClUint8T trackFlags, CL_INOUT ClGmsClusterNotificationBufferT *notificationBuffer) |
| Configures the cluster tracking mode. More... | |
| ClRcT | clGmsClusterTrackStop (CL_IN ClGmsHandleT gmsHandle) |
| Stops all the clusters tracking. More... | |
| ClRcT | clGmsDispatch (ClGmsHandleT clmHandle, ClDispatchFlagsT dispatchFlags) |
| Dispatch API as per SAF symantics for dispatching the pending callbacks. More... | |
| ClRcT | clGmsFinalize (CL_IN ClGmsHandleT gmsHandle) |
| Cleans up the GMS library. More... | |
| ClRcT | clGmsInitialize (CL_OUT ClGmsHandleT *gmsHandle, CL_IN const ClGmsCallbacksT *gmsCallbacks, CL_INOUT ClVersionT *version) |
| Initializes the GMS library and registers the callback functions. More... | |
| 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. More... | |
Variables | |
| ClGmsClusterChangesT | clusterChange |
| Describes the change in the cluster view since last notification. | |
| ClGmsNodeIdT | deputy |
| Node marked as deputy. More... | |
| ClGmsNodeIdT | leader |
| Node ID of current leader. More... | |
| ClBoolT | leadershipChanged |
| To check whether the leader has changed since the last view. More... | |
| ClGmsClusterNotificationT * | notification |
| Array of nodes. More... | |
| 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.