OpenClovis Logo

clCkptExtApi.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2002-2012 OpenClovis Solutions Inc. All Rights Reserved.
3  *
4  * This file is available under a commercial license from the
5  * copyright holder or the GNU General Public License Version 2.0.
6  *
7  * The source code for this program is not published or otherwise
8  * divested of its trade secrets, irrespective of what has been
9  * deposited with the U.S. Copyright office.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * General Public License for more details.
15  *
16  * For more information, see the file COPYING provided with this
17  * material.
18  */
19 /*******************************************************************************
20  * ModuleName : ckpt
21  * File : clCkptExtApi.h
22  *******************************************************************************/
23 
24 /*******************************************************************************
25 * Description :
26 *
27 * Checkpoint service provides more functionality than whatever described
28 * in SAF. This file contains APIs to access such functionality
29 *
30 *
31 *****************************************************************************/
32 
45 #ifndef _CL_CKPT_EXT_API_H_
46 #define _CL_CKPT_EXT_API_H_
47 
48 # ifdef __cplusplus
49 extern "C" {
50 # endif
51 
52 #include <clCommon.h>
53 #include <clCkptApi.h>
54 #include <clCntApi.h>
55 #include <clOsalApi.h>
56 #include <clEoApi.h>
57 #include <clDifferenceVector.h>
58 
63 
67  ClUint32T,
68 
72  ClAddrT *,
73 
77  ClUint32T *, ClPtrT );
81 
82 
87 
91  ClUint32T,
92 
96  ClAddrT ,
97 
101  ClUint32T,
105  ClPtrT );
106 
107 /*
108  * Data set versioned callbacks for serializing and deserializing on-disk data.
109  */
110 typedef struct ClCkptDataSetCallback
111 {
112  ClVersionT version;
113  ClCkptSerializeT serialiser;
114  ClCkptDeserializeT deSerialiser;
115 }ClCkptDataSetCallbackT;
116 
117 typedef struct ClCkptDifferenceIOVectorElement
118 {
122  ClCkptSectionIdT sectionId;
123  ClSizeT dataSize;
124  ClOffsetT dataOffset;
125  ClDifferenceVectorT *differenceVector; /* the dataBuffer difference vector representation*/
126 }ClCkptDifferenceIOVectorElementT;
127 
128 typedef struct ClCkptClientInfo
129 {
130  ClIocNodeAddressT nodeAddress;
131  ClIocPortT portId;
132 } ClCkptClientInfoT;
133 
134 typedef struct ClCkptClientInfoList
135 {
136  ClUint32T numEntries;
137  ClCkptClientInfoT *pClientInfo;
138 } ClCkptClientInfoListT;
139 
140 
168  CL_INOUT ClCkptSvcHdlT *pCkptHdl );
169 
170 extern ClRcT clCkptLibraryInitializeDB(
171  CL_INOUT ClCkptSvcHdlT *pCkptHdl,
172  const ClCharT *dbName);
173 
199 
227  CL_IN ClNameT *pCkptName);
228 
229 
258  CL_IN ClNameT *pCkptName);
259 
260 
300  CL_IN ClNameT *pCkptName,
301  CL_IN ClUint32T dsId,
302  CL_IN ClUint32T grpId,
303  CL_IN ClUint32T order,
304  CL_IN ClCkptSerializeT dsSerialiser,
305  CL_IN ClCkptDeserializeT dsDeserialiser);
306 
307 extern ClRcT clCkptLibraryCkptDataSetVersionCreate( CL_IN ClCkptSvcHdlT ckptHdl,
308  CL_IN ClNameT *pCkptName,
309  CL_IN ClUint32T dsId,
310  CL_IN ClUint32T grpId,
311  CL_IN ClUint32T order,
312  CL_IN ClCkptDataSetCallbackT *pTable,
313  CL_IN ClUint32T numTableEntries);
314 
315 
349  CL_IN ClNameT *pCkptName,
350  CL_IN ClUint32T dsId );
351 
383  CL_IN ClNameT *pCkptName,
384  CL_IN ClUint32T dsId,
385  CL_IN ClPtrT cookie );
386 
387 extern ClRcT clCkptLibraryCkptDataSetVersionWrite(CL_IN ClCkptSvcHdlT ckptHdl,
388  CL_IN ClNameT *pCkptName,
389  CL_IN ClUint32T dsId,
390  CL_IN ClPtrT cookie,
391  CL_IN ClVersionT *pVersion);
392 
424  CL_IN ClNameT *pCkptName,
425  CL_IN ClUint32T dsId,
426  CL_IN ClPtrT cookie);
427 
454  CL_IN ClNameT *pCkptName,
455  CL_OUT ClBoolT *pRetVal);
456 
484  CL_IN ClNameT *pCkptName,
485  CL_IN ClUint32T dsId,
486  CL_OUT ClBoolT *pRetVal);
517  ClNameT *pCkptName,
518  ClUint32T dsId,
519  ClCkptSerializeT elemSerialiser,
520  ClCkptDeserializeT elemDeserialiser);
521 
522 extern ClRcT clCkptLibraryCkptElementVersionCreate(ClCkptSvcHdlT ckptHdl,
523  ClNameT *pCkptName,
524  ClUint32T dsId,
525  ClCkptDataSetCallbackT *pTable,
526  ClUint32T numTableEntries);
527 
561  ClNameT *pCkptName,
562  ClUint32T dsId,
563  ClPtrT elemId,
564  ClUint32T elemLen,
565  ClPtrT cookie);
566 
567 extern ClRcT clCkptLibraryCkptElementVersionWrite (ClCkptSvcHdlT ckptHdl,
568  ClNameT *pCkptName,
569  ClUint32T dsId,
570  ClPtrT elemId,
571  ClUint32T elemLen,
572  ClPtrT cookie,
573  ClVersionT *pVersion);
574 
608  ClNameT *pCkptName,
609  ClUint32T dsId,
610  ClPtrT elemId,
611  ClUint32T elemLen);
612 
613 extern ClRcT clCkptReplicaChangeRegister(ClRcT (*pCkptRelicaChangeCallback)
614  (const ClNameT *pCkptName, ClIocNodeAddressT replicaAddr));
615 
616 extern ClRcT clCkptReplicaChangeDeregister(void);
617 
618 ClRcT clCkptSectionOverwriteVector(ClCkptHdlT ckptHdl,
619  const ClCkptSectionIdT *pSectionId,
620  ClSizeT dataSize,
621  ClDifferenceVectorT *differenceVector);
622 
623 #ifdef __cplusplus
624 }
625 #endif
626 
627 #endif /* _CL_CKPT_EXT_API_H_*/
628 

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