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

Reply via email to