OpenClovis Logo

Classes | Macros | Typedefs | Enumerations | Functions | Variables
clClmTmsCommon.h File Reference

Header file of Group Membership Service APIs. More...

#include <clCommon.h>
#include <clIocApi.h>

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.
ClGmsClusterNotificationTnotification
 Array of nodes.
ClUint32T numberOfItems
 Length of notification array.

Detailed Description

Header file of Group Membership Service APIs.

Variable Documentation

Node marked as deputy.

Member marked as deputy.

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.


Generated on Tue Jan 10 10:29:15 PST 2012 for OpenClovis SDK using Doxygen