Hi Carl, only code review, one question, the change of 
ckptdll.saCkptIOVectorElementDataFree second argument from BYREF to 
SaVoidPtr makes this
change not backward compatible, right? /BR HansN


  On 03/03/14 14:57, Carl Johannesson wrote:
>   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)


------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to