⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ais_lock.h

📁 linux集群服务器软件代码包
💻 H
字号:
#ifndef _AIS_LOCK_H_#define _AIS_LOCK_H_ #include "ais_base.h"/* Chapter 10 */typedef OPAQUE_TYPE SaLckHandleT;typedef OPAQUE_TYPE SaLckLockIdT;typedef OPAQUE_TYPE SaLckResourceIdT;#define SA_LCK_LOCK_NO_QUEUE 0x1#define SA_LCK_LOCK_ORPHAN 0x2#define SA_LCK_LOCK_TIMEOUT 0X4typedef SaUint32T SaLckLockFlagsT;typedef enum {    SA_LCK_LOCK_GRANTED = 1,    SA_LCK_LOCK_RELEASED = 2,    SA_LCK_LOCK_DEADLOCK = 3,    SA_LCK_LOCK_NOT_QUEUED = 4,    SA_LCK_LOCK_TIMED_OUT = 5,    SA_LCK_LOCK_ORPHANED = 6,    SA_LCK_LOCK_NO_MORE = 7} SaLckLockStatusT;typedef enum {    SA_LCK_PR_LOCK_MODE = 1,    SA_LCK_EX_LOCK_MODE = 2} SaLckLockModeT;typedef void (*SaLckLockGrantCallbackT)(SaInvocationT invocation,                           const SaLckResourceIdT *resourceId,                           const SaLckLockIdT *lockId,                           SaLckLockModeT lockMode,                           SaLckLockStatusT lockStatus,                           SaErrorT error);typedef void (*SaLckLockWaiterCallbackT)(SaInvocationT invocation,                            const SaLckResourceIdT *resourceId,                            const SaLckLockIdT *lockId,                            SaLckLockModeT modeHeld,                            SaLckLockModeT modeRequested);typedef void (*SaLckResourceUnlockCallbackT)(SaInvocationT invocation,                                const SaLckResourceIdT *resourceId,                                const SaLckLockIdT *lockId,                                SaLckLockStatusT lockStatus,                                SaErrorT error);typedef struct{    SaLckLockGrantCallbackT saLckLockGrantCallback;    SaLckLockWaiterCallbackT saLckLockWaiterCallback;    SaLckResourceUnlockCallbackT saLckResourceUnlockCallback;} SaLckCallbacksT;    SaErrorT saLckInitialize(SaLckHandleT *lckHandle, const SaLckCallbacksT *lckCallbacks,                const SaVersionT *version);    SaErrorT saLckSelectionObjectGet(const SaLckHandleT *lckHandle,                        SaSelectionObjectT *selectionObject);    SaErrorT saLckDispatch(const SaLckHandleT *lckHandle,              const SaDispatchFlagsT dispatchFlags);    SaErrorT saLckFinalize(SaLckHandleT *lckHandle);    SaErrorT saLckResourceOpen(const SaLckHandleT *lckHandle,                  const SaNameT *lockName,                  SaLckResourceIdT *resourceId);    SaErrorT saLckResourceClose(SaLckHandleT *lckHandle, SaLckResourceIdT *resourceId);    SaErrorT saLckResourceLock(const SaLckHandleT *lckHandle, SaInvocationT invocation,                  const SaLckResourceIdT *resourceId,                  SaLckLockIdT *lockId,                  SaLckLockModeT lockMode,                  SaLckLockFlagsT lockFlags,                  SaTimeT timeout,                  SaLckLockStatusT *lockStatus);    SaErrorTSaLckResourceLockAsync(const SaLckHandleT *lckHandle,                       SaInvocationT invocation,                       const SaLckResourceIdT *resourceId,                       SaLckLockIdT *lockId,                       SaLckLockModeT lockMode,                       SaLckLockFlagsT lockFlags,                       SaTimeT timeout);    SaErrorT saLckResourceUnlock(const SaLckHandleT *lckHandle,                    SaLckLockIdT *lockId,                    SaTimeT timeout);    SaErrorT saLckResourceUnlockAsync(const SaLckHandleT *lckHandle,                         SaInvocationT invocation,                         const SaLckLockIdT *lockId);    SaErrorTsaLckLockPurge(const SaLckHandleT *lckHandle,               const SaLckResourceIdT *resourceId);#endif /* _AIS_LOCK_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -