OpenClovis Logo

clCorSimpleApi.h
1 #ifndef CL_COR_SIMPLE_API_H
2 #define CL_COR_SIMPLE_API_H
3 
4 #include <clCorApi.h>
5 #include <clCorServiceId.h>
6 #include <clMemGroup.h>
7 
8 typedef struct ClCorObjectReference
9 {
10  ClCorObjectHandleT objHandle;
11  ClCorMOIdT moId;
12  /*
13  * maybe something extra that I am not aware of: like txn session
14 ID, etc.
15  */
16 } ClCorObjectReferenceT;
17 
18 #define clFieldOffset(_type,_field) ((ClUint32T)(ClWordT)&(((_type*) 0)->_field))
19 #define clField(_type,_field) ((ClUint32T)(ClWordT)&(((_type*) 0)->_field)), sizeof((((_type*) 0)->_field))
20 
21 typedef ClCorObjectReferenceT* ClCorHandleT;
22 
23 typedef enum ClCorObjectFlags
24 {
25  CL_COR_OBJECT_CREATE,
26 } ClCorObjectFlagsT;
27 
28 
29 
30 typedef struct ClCor2CEntry
31 {
32  ClCorAttrIdT attrId;
33  ClUint32T offset;
34  ClUint32T length;
35 
36 } ClCor2CEntryT;
37 
38 typedef struct ClCor2C
39 {
40  ClUint32T length;
41  ClCor2CEntryT* itemDef;
42 } ClCor2CT;
43 
48 typedef struct ClCorTree
49 {
51  ClMemGroupT allocated;
53  ClOsalMutexT mutex;
54  ClWordT nodeSize;
55 } ClCorTreeT;
56 
57 typedef struct ClCorTreeNode
58 {
59  struct ClCorTreeNode* sib;
60  struct ClCorTreeNode* child;
61  struct ClCorTreeNode* parent;
62 } ClCorTreeNodeT;
63 
65 typedef struct ClCorObjectTreeNode
66 {
67  ClCorTreeNodeT cmn;
68 
69  ClNameT name;
70  ClPtrT* value;
71  ClWordT size;
72  ClCorTypeT type;
73  ClCorAttrTypeT ordinality;
75 
77 typedef struct ClCorClassTreeNode
78 {
79  ClCorTreeNodeT cmn;
80  ClNameT name;
82 
84 typedef struct ClCorObjectTree
85 {
91 
93 typedef struct ClCorClassTree
94 {
100 
101 
122 ClCorObjectReferenceT *clCorObjRefGet(const ClCharT *name,ClCorServiceIdT type);
123 
143 void clCorObjRefRelease(ClCorObjectReferenceT *ref);
144 
165 ClRcT clCorOpen(const ClCharT *name, ClCorObjectFlagsT flags, ClCorHandleT *fd);
166 
183 ClRcT clCorHandleRelease(ClCorHandleT hdl);
184 
205 ClRcT clCorDelete(const ClCharT *name);
206 
228 ClRcT clCorCreate(const ClCharT *name,void* myObj, ClCor2CT* objDef, ClCorHandleT *fd);
229 
249 ClRcT clCorSetPrimary(const ClCharT *name, ClBoolT val);
250 
271 ClRcT clCorSetPrimaryByMoid(void* moId, ClBoolT state);
272 
293 ClRcT clCorRead(const ClCharT *name,void* myObj, ClCor2CT* objDef);
294 
315 ClRcT clCorReadByMoid(void* MoId, void* myObj, ClCor2CT* objDef);
316 
337 ClCorAttributeValueListT* clCorGetAttValueList(void* myObj,ClCor2CT* objDef);
338 void clCorReleaseAttValueList(ClCorAttributeValueListT* obj);
339 
340 
341 ClCorAttrValueDescriptorListT* clCorGetAttValueDescList(void* myObj,ClCor2CT* objDef,ClCorJobStatusT* jobStatus);
342 void clCorReleaseAttValueDescList(ClCorAttrValueDescriptorListT* obj);
343 
348 void clCorTreeNodeInit(ClCorTreeNodeT* obj);
349 
350 
355 void clCorTreeInit(ClCorTreeT* obj,ClWordT nSize);
356 
361 void clCorTreeDelete(ClCorTreeT* obj);
362 
367 void clCorObjectTreeInit(ClCorObjectTreeT* obj);
368 
373 void clCorObjectTreeDelete(ClCorObjectTreeT* obj);
374 
379 void clCorClassTreeInit(ClCorClassTreeT* obj);
380 
385 void clCorClassTreeDelete(ClCorClassTreeT* obj);
386 
387 
388 void clCorObjectTreeNodeInit(ClCorObjectTreeNodeT* obj);
389 void clCorClassTreeNodeInit(ClCorClassTreeNodeT* obj);
390 
398 ClCorObjectTreeNodeT* clCorObjectTreeNewNode(ClCorObjectTreeT* tree);
399 
407 ClCorClassTreeNodeT* clCorClassTreeNewNode(ClCorClassTreeT* tree);
408 
412 void clCorClassTreePrint(ClCorClassTreeT* tree);
413 
417 void clCorObjectTreePrint(ClCorObjectTreeT* tree);
418 
435 ClRcT clCorClassTreeFill(ClCorClassTreeT* tree);
436 
453 ClRcT clCorObjectTreeFill(ClCorObjectTreeT* tree);
454 
455 /* internal functions (not really independently useful) */
456 ClCorObjectTreeNodeT* clCorObjectTreeNodeFindSib(ClCorObjectTreeNodeT* sib,char* str,int len);
457 ClCorClassTreeNodeT* clCorClassTreeNodeFindSib(ClCorClassTreeNodeT* sib,char* str,int len);
458 
459 void clCorObjectTreeNodePrint(ClCorObjectTreeNodeT* node,ClWordT indent);
460 void clCorClassTreeNodePrint(ClCorClassTreeNodeT* node,ClWordT indent);
461 
462 #endif

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