python/pyosaf/saCkpt.py | 170 +++++++++++++++++++++++++++++++++++++++--------
1 files changed, 140 insertions(+), 30 deletions(-)
Extended Ckpt api means that a user can enable
a callback to be sent by the ckpt service when
a section is created, deleted and written to.
diff --git a/python/pyosaf/saCkpt.py b/python/pyosaf/saCkpt.py
--- a/python/pyosaf/saCkpt.py
+++ b/python/pyosaf/saCkpt.py
@@ -128,6 +128,9 @@ SaCkptCheckpointOpenCallbackT = CFUNCTYP
SaCkptCheckpointSynchronizeCallbackT = CFUNCTYPE(None,
SaInvocationT, SaAisErrorT)
+SaCkptCheckpointTrackCallbackT = CFUNCTYPE(None,
+ SaCkptCheckpointHandleT, POINTER(SaCkptIOVectorElementT),
SaUint32T)
+
class SaCkptCallbacksT(Structure):
"""Contain various callbacks Checkpoint Service may invoke on process.
@@ -137,6 +140,17 @@ class SaCkptCallbacksT(Structure):
('saCkptCheckpointSynchronizeCallback',
SaCkptCheckpointSynchronizeCallbackT)]
+class SaCkptCallbacksT_2(Structure):
+ """Contain various callbacks Checkpoint Service may invoke on process.
+ """
+ _fields_ = [('saCkptCheckpointOpenCallback',
+ SaCkptCheckpointOpenCallbackT),
+ ('saCkptCheckpointSynchronizeCallback',
+ SaCkptCheckpointSynchronizeCallbackT),
+ ('saCkptCheckpointTrackCallback',
+ SaCkptCheckpointTrackCallbackT)]
+
+
def saCkptInitialize(ckptHandle, callbacks, version):
"""Register invoking process with the Checkpoint Service.
@@ -154,13 +168,37 @@ def saCkptInitialize(ckptHandle, callbac
POINTER(SaCkptCallbacksT),
POINTER(SaVersionT)
]
-
+
ckptdll.saCkptInitialize.restype = SaAisErrorT
return ckptdll.saCkptInitialize(BYREF(ckptHandle),
BYREF(callbacks),
BYREF(version))
+def saCkptInitialize_2(ckptHandle, callbacks, version):
+ """Register invoking process with the Checkpoint Service.
+
+ type arguments:
+ SaCkptHandleT ckptHandle
+ SaCkptCallbacksT_2 callbacks
+ SaVersionT version
+
+ returns:
+ SaAisErrorT
+
+ """
+ ckptdll.saCkptInitialize_2.argtypes = [
+ POINTER(SaCkptHandleT),
+ POINTER(SaCkptCallbacksT_2),
+ POINTER(SaVersionT)
+ ]
+
+ ckptdll.saCkptInitialize_2.restype = SaAisErrorT
+
+ return ckptdll.saCkptInitialize_2(BYREF(ckptHandle),
+ BYREF(callbacks),
+ BYREF(version))
+
def saCkptSelectionObjectGet(ckptHandle, selectionObject):
"""Return the operating system handle associated with ckptHandle
to detect pending callbacks.
@@ -171,13 +209,13 @@ def saCkptSelectionObjectGet(ckptHandle,
returns:
SaAisErrorT
-
+
"""
ckptdll.saCkptSelectionObjectGet.argtypes = [
SaCkptHandleT,
POINTER(SaSelectionObjectT)
]
-
+
ckptdll.saCkptSelectionObjectGet.restype = SaAisErrorT
return ckptdll.saCkptSelectionObjectGet(ckptHandle,
@@ -198,7 +236,7 @@ def saCkptDispatch(ckptHandle, dispatchF
SaCkptHandleT,
SaDispatchFlagsT
]
-
+
ckptdll.saCkptDispatch.restype = SaAisErrorT
return ckptdll.saCkptDispatch(ckptHandle, dispatchFlags)
@@ -216,7 +254,7 @@ def saCkptFinalize(ckptHandle):
ckptdll.saCkptFinalize.argtypes = [
SaCkptHandleT
]
-
+
ckptdll.saCkptFinalize.restype = SaAisErrorT
return ckptdll.saCkptFinalize(ckptHandle)
@@ -249,7 +287,7 @@ def saCkptCheckpointOpen(ckptHandle,
SaTimeT,
POINTER(SaCkptCheckpointHandleT)
]
-
+
ckptdll.saCkptCheckpointOpen.restype = SaAisErrorT
return ckptdll.saCkptCheckpointOpen(ckptHandle,
@@ -284,7 +322,7 @@ def saCkptCheckpointOpenAsync(ckptHandle
POINTER(SaCkptCheckpointCreationAttributesT),
SaCkptCheckpointOpenFlagsT
]
-
+
ckptdll.saCkptCheckpointOpenAsync.restype = SaAisErrorT
return ckptdll.saCkptCheckpointOpenAsync(ckptHandle,
@@ -306,7 +344,7 @@ def saCkptCheckpointClose(checkpointHand
ckptdll.saCkptCheckpointClose.argtypes = [
SaCkptCheckpointHandleT
]
-
+
ckptdll.saCkptCheckpointClose.restype = SaAisErrorT
return ckptdll.saCkptCheckpointClose(checkpointHandle)
@@ -326,7 +364,7 @@ def saCkptCheckpointUnlink(ckptHandle, c
SaCkptHandleT,
POINTER(SaNameT)
]
-
+
ckptdll.saCkptCheckpointUnlink.restype = SaAisErrorT
return ckptdll.saCkptCheckpointUnlink(ckptHandle,
@@ -347,7 +385,7 @@ def saCkptCheckpointRetentionDurationSet
SaCkptCheckpointHandleT,
SaTimeT
]
-
+
ckptdll.saCkptCheckpointRetentionDurationSet.restype = SaAisErrorT
return ckptdll.saCkptCheckpointRetentionDurationSet(checkpointHandle,
@@ -366,7 +404,7 @@ def saCkptActiveReplicaSet(checkpointHan
ckptdll.saCkptActiveReplicaSet.argtypes = [
SaCkptCheckpointHandleT
]
-
+
ckptdll.saCkptActiveReplicaSet.restype = SaAisErrorT
return ckptdll.saCkptActiveReplicaSet(checkpointHandle)
@@ -386,7 +424,7 @@ def saCkptCheckpointStatusGet(checkpoint
SaCkptCheckpointHandleT,
POINTER(SaCkptCheckpointDescriptorT)
]
-
+
ckptdll.saCkptCheckpointStatusGet.restype = SaAisErrorT
return ckptdll.saCkptCheckpointStatusGet(checkpointHandle,
@@ -411,15 +449,15 @@ def saCkptSectionCreate(checkpointHandle
ckptdll.saCkptSectionCreate.argtypes = [
SaCkptCheckpointHandleT,
POINTER(SaCkptSectionCreationAttributesT),
- POINTER(void),
- SaSizeT
+ SaVoidPtr,
+ SaSizeT
]
-
+
ckptdll.saCkptSectionCreate.restype = SaAisErrorT
return ckptdll.saCkptSectionCreate(checkpointHandle,
BYREF(sectionCreationAttributes),
- BYREF(initialData),
+ initialData,
initialDataSize)
def saCkptSectionDelete(checkpointHandle, sectionId):
@@ -438,7 +476,7 @@ def saCkptSectionDelete(checkpointHandle
SaCkptCheckpointHandleT,
POINTER(SaCkptSectionIdT)
]
-
+
ckptdll.saCkptSectionDelete.restype = SaAisErrorT
return ckptdll.saCkptSectionDelete(checkpointHandle,
@@ -464,7 +502,7 @@ def saCkptSectionExpirationTimeSet(check
POINTER(SaCkptSectionIdT),
SaTimeT
]
-
+
ckptdll.saCkptSectionExpirationTimeSet.restype = SaAisErrorT
return ckptdll.saCkptSectionExpirationTimeSet(checkpointHandle,
@@ -493,7 +531,7 @@ def saCkptSectionIterationInitialize(che
SaTimeT,
POINTER(SaCkptSectionIterationHandleT)
]
-
+
ckptdll.saCkptSectionIterationInitialize.restype = SaAisErrorT
return ckptdll.saCkptSectionIterationInitialize(checkpointHandle,
@@ -517,7 +555,7 @@ def saCkptSectionIterationNext(sectionIt
SaCkptSectionIterationHandleT,
POINTER(SaCkptSectionDescriptorT)
]
-
+
ckptdll.saCkptSectionIterationNext.restype = SaAisErrorT
return ckptdll.saCkptSectionIterationNext(sectionIterationHandle,
@@ -536,7 +574,7 @@ def saCkptSectionIterationFinalize(secti
ckptdll.saCkptSectionIterationFinalize.argtypes = [
SaCkptSectionIterationHandleT
]
-
+
ckptdll.saCkptSectionIterationFinalize.restype = SaAisErrorT
return ckptdll.saCkptSectionIterationFinalize(sectionIterationHandle)
@@ -569,7 +607,7 @@ def saCkptCheckpointWrite(checkpointHand
SaUint32T,
POINTER(SaUint32T)
]
-
+
ckptdll.saCkptCheckpointWrite.restype = SaAisErrorT
return ckptdll.saCkptCheckpointWrite(checkpointHandle,
@@ -592,7 +630,7 @@ def saCkptSectionOverwrite(checkpointHan
returns:
SaAisErrorT
-
+
"""
ckptdll.saCkptSectionOverwrite.argtypes = [
SaCkptCheckpointHandleT,
@@ -600,7 +638,7 @@ def saCkptSectionOverwrite(checkpointHan
SaVoidPtr,
SaSizeT
]
-
+
ckptdll.saCkptSectionOverwrite.restype = SaAisErrorT
return ckptdll.saCkptSectionOverwrite(checkpointHandle,
@@ -654,7 +692,7 @@ def saCkptCheckpointSynchronize(checkpoi
SaCkptCheckpointHandleT,
SaTimeT
]
-
+
ckptdll.saCkptCheckpointSynchronize.restype = SaAisErrorT
return ckptdll.saCkptCheckpointSynchronize(checkpointHandle, timeout)
@@ -675,7 +713,7 @@ def saCkptCheckpointSynchronizeAsync(che
SaCkptCheckpointHandleT,
SaInvocationT
]
-
+
ckptdll.saCkptCheckpointSynchronizeAsync.restype = SaAisErrorT
return ckptdll.saCkptCheckpointSynchronizeAsync(checkpointHandle,
@@ -696,7 +734,7 @@ def saCkptSectionIdFree(checkpointHandle
SaCkptCheckpointHandleT,
POINTER(SaUint8T)
]
-
+
ckptdll.saCkptSectionIdFree.restype = SaAisErrorT
return ckptdll.saCkptSectionIdFree(checkpointHandle,
@@ -715,10 +753,82 @@ def saCkptIOVectorElementDataFree(checkp
"""
ckptdll.saCkptIOVectorElementDataFree.argtypes = [
SaCkptCheckpointHandleT,
- POINTER(SaVoidPtr)
+ SaVoidPtr
]
-
+
ckptdll.saCkptIOVectorElementDataFree.restype = SaAisErrorT
return ckptdll.saCkptIOVectorElementDataFree(checkpointHandle,
-
BYREF(data))
+ data)
+
+def saCkptTrack(ckptHandle):
+ """enable/starts the Ckpt Track callback.
+
+ type arguments:
+ SaCkptHandleT ckptHandle
+
+ returns:
+ SaAisErrorT
+
+ """
+ ckptdll.saCkptTrack.argtypes = [
+ SaCkptHandleT
+ ]
+
+ ckptdll.saCkptTrack.restype = SaAisErrorT
+
+ return ckptdll.saCkptTrack(ckptHandle)
+
+def saCkptTrackStop(ckptHandle):
+ """disable/stops the Ckpt Track callback.
+
+ type arguments:
+ SaCkptHandleT ckptHandle
+
+ returns:
+ SaAisErrorT
+
+ """
+ ckptdll.saCkptTrackStop.argtypes = [
+ SaCkptHandleT
+ ]
+
+ ckptdll.saCkptTrackStop.restype = SaAisErrorT
+
+ return ckptdll.saCkptTrackStop(ckptHandle)
+
+def saCkptCheckpointTrack(checkpointHandle):
+ """enable/starts the Ckpt Track callback.
+
+ type arguments:
+ SaCkptCheckpointHandleT checkpointHandle
+
+ returns:
+ SaAisErrorT
+
+ """
+ ckptdll.saCkptCheckpointTrack.argtypes = [
+ SaCkptCheckpointHandleT
+ ]
+
+ ckptdll.saCkptCheckpointTrack.restype = SaAisErrorT
+
+ return ckptdll.saCkptCheckpointTrack(checkpointHandle)
+
+def saCkptCheckpointTrackStop(checkpointHandle):
+ """disable/stops the Ckpt Track callback.
+
+ type arguments:
+ SaCkptCheckpointHandleT checkpointHandle
+
+ returns:
+ SaAisErrorT
+
+ """
+ ckptdll.saCkptCheckpointTrackStop.argtypes = [
+ SaCkptCheckpointHandleT
+ ]
+
+ ckptdll.saCkptCheckpointTrackStop.restype = SaAisErrorT
+
+ return ckptdll.saCkptCheckpointTrackStop(checkpointHandle)
------------------------------------------------------------------------------
Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works.
Faster operations. Version large binaries. Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel