43 typedef SaUint64T SaCkptHandleT;
44 typedef SaUint64T SaCkptCheckpointHandleT;
45 typedef SaUint64T SaCkptSectionIterationHandleT;
47 #define SA_CKPT_WR_ALL_REPLICAS 0X1
48 #define SA_CKPT_WR_ACTIVE_REPLICA 0X2
49 #define SA_CKPT_WR_ACTIVE_REPLICA_WEAK 0X4
50 #define SA_CKPT_CHECKPOINT_COLLOCATED 0X8
52 typedef SaUint32T SaCkptCheckpointCreationFlagsT;
55 SaCkptCheckpointCreationFlagsT creationFlags;
56 SaSizeT checkpointSize;
57 SaTimeT retentionDuration;
58 SaUint32T maxSections;
59 SaSizeT maxSectionSize;
60 SaSizeT maxSectionIdSize;
61 } SaCkptCheckpointCreationAttributesT;
63 #define SA_CKPT_CHECKPOINT_READ 0X1
64 #define SA_CKPT_CHECKPOINT_WRITE 0X2
65 #define SA_CKPT_CHECKPOINT_CREATE 0X4
67 typedef SaUint32T SaCkptCheckpointOpenFlagsT;
69 #define SA_CKPT_DEFAULT_SECTION_ID {0, NULL}
70 #define SA_CKPT_GENERATED_SECTION_ID {0, NULL}
78 SaCkptSectionIdT *sectionId;
79 SaTimeT expirationTime;
80 } SaCkptSectionCreationAttributesT;
83 SA_CKPT_SECTION_VALID = 1,
84 SA_CKPT_SECTION_CORRUPTED = 2
85 } SaCkptSectionStateT;
88 SaCkptSectionIdT sectionId;
89 SaTimeT expirationTime;
91 SaCkptSectionStateT sectionState;
93 } SaCkptSectionDescriptorT;
96 SA_CKPT_SECTIONS_FOREVER = 1,
97 SA_CKPT_SECTIONS_LEQ_EXPIRATION_TIME = 2,
98 SA_CKPT_SECTIONS_GEQ_EXPIRATION_TIME = 3,
99 SA_CKPT_SECTIONS_CORRUPTED = 4,
100 SA_CKPT_SECTIONS_ANY = 5
101 } SaCkptSectionsChosenT;
104 SaCkptSectionIdT sectionId;
107 SaOffsetT dataOffset;
109 } SaCkptIOVectorElementT;
112 SaCkptCheckpointCreationAttributesT checkpointCreationAttributes;
113 SaUint32T numberOfSections;
114 SaUint32T memoryUsed;
115 } SaCkptCheckpointDescriptorT;
118 (*SaCkptCheckpointOpenCallbackT)(SaInvocationT invocation,
119 SaCkptCheckpointHandleT checkpointHandle,
122 (*SaCkptCheckpointSynchronizeCallbackT)(SaInvocationT invocation,
126 SaCkptCheckpointOpenCallbackT saCkptCheckpointOpenCallback;
127 SaCkptCheckpointSynchronizeCallbackT saCkptCheckpointSynchronizeCallback;
131 saCkptInitialize(SaCkptHandleT *ckptHandle,
132 const SaCkptCallbacksT *callbacks,
133 SaVersionT *version);
135 saCkptSelectionObjectGet(SaCkptHandleT ckptHandle,
136 SaSelectionObjectT *selectionObject);
138 saCkptDispatch(SaCkptHandleT ckptHandle,
139 SaDispatchFlagsT dispatchFlags);
141 saCkptFinalize(SaCkptHandleT ckptHandle);
143 saCkptCheckpointOpen(SaCkptHandleT ckptHandle,
144 const SaNameT *ckeckpointName,
145 const SaCkptCheckpointCreationAttributesT *checkpointCreationAttributes,
146 SaCkptCheckpointOpenFlagsT checkpointOpenFlags,
148 SaCkptCheckpointHandleT *checkpointHandle);
150 saCkptCheckpointOpenAsync(SaCkptHandleT ckptHandle,
151 SaInvocationT invocation,
152 const SaNameT *ckeckpointName,
153 const SaCkptCheckpointCreationAttributesT *checkpointCreationAttributes,
154 SaCkptCheckpointOpenFlagsT checkpointOpenFlags);
156 saCkptCheckpointClose(SaCkptCheckpointHandleT checkpointHandle);
158 saCkptCheckpointUnlink(SaCkptHandleT ckptHandle,
159 const SaNameT *checkpointName);
161 saCkptCheckpointRetentionDurationSet(SaCkptCheckpointHandleT checkpointHandle,
162 SaTimeT retentionDuration);
164 saCkptActiveReplicaSet(SaCkptCheckpointHandleT checkpointHandle);
166 saCkptCheckpointStatusGet(SaCkptCheckpointHandleT checkpointHandle,
167 SaCkptCheckpointDescriptorT *checkpointStatus);
169 saCkptSectionCreate(SaCkptCheckpointHandleT checkpointHandle,
170 SaCkptSectionCreationAttributesT *sectionCreationAttributes,
171 const SaUint8T *initialData,
172 SaSizeT initialDataSize);
174 saCkptSectionDelete(SaCkptCheckpointHandleT checkpointHandle,
175 const SaCkptSectionIdT *sectionId);
177 saCkptSectionExpirationTimeSet(SaCkptCheckpointHandleT checkpointHandle,
178 const SaCkptSectionIdT* sectionId,
179 SaTimeT expirationTime);
181 saCkptSectionIterationInitialize(SaCkptCheckpointHandleT checkpointHandle,
182 SaCkptSectionsChosenT sectionsChosen,
183 SaTimeT expirationTime,
184 SaCkptSectionIterationHandleT *sectionIterationHandle);
186 saCkptSectionIterationNext(SaCkptSectionIterationHandleT sectionIterationHandle,
187 SaCkptSectionDescriptorT *sectionDescriptor);
189 saCkptSectionIterationFinalize(SaCkptSectionIterationHandleT sectionIterationHandle);
191 saCkptCheckpointWrite(SaCkptCheckpointHandleT checkpointHandle,
192 const SaCkptIOVectorElementT *ioVector,
193 SaUint32T numberOfElements,
194 SaUint32T *erroneousVectorIndex);
196 saCkptSectionOverwrite(SaCkptCheckpointHandleT checkpointHandle,
197 const SaCkptSectionIdT *sectionId,
198 const void *dataBuffer,
201 saCkptCheckpointRead(SaCkptCheckpointHandleT checkpointHandle,
202 SaCkptIOVectorElementT *ioVector,
203 SaUint32T numberOfElements,
204 SaUint32T *erroneousVectorIndex);
206 saCkptCheckpointSynchronize(SaCkptCheckpointHandleT ckeckpointHandle,
209 saCkptCheckpointSynchronizeAsync(SaCkptCheckpointHandleT checkpointHandle,
210 SaInvocationT invocation);