00001 #ifndef CCMIO_CORE_H
00002 #define CCMIO_CORE_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifdef __cplusplus
00021 extern "C" {
00022 #endif
00023
00024 #define kCCMIOBadNode 0.0
00025
00026 #include <stdarg.h>
00027 #include "ccmiotypes.h"
00028 #include "ccmiobuffer.h"
00029
00030
00031
00032
00033
00034
00039 extern CCMIOError CCMIOOpen( const char *filename, CCMIOIOType mode,
00040 CCMIONode *root );
00041
00044 extern CCMIOError CCMIOClose( CCMIONode root );
00045
00056 extern CCMIOError CCMIOGetNode( CCMIOError *err, CCMIONode parent,
00057 const char *path, CCMIONode *node );
00058
00060 extern CCMIOError CCMIOGetNumberOfChildren( CCMIOError *err, CCMIONode parent,
00061 int *n );
00062
00075 extern CCMIOError CCMIOGetNextChild( CCMIOError *err, CCMIONode parent, int *n,
00076 CCMIONode *child );
00077
00085 extern CCMIOError CCMIOGetName( CCMIOError *err, CCMIONode node, char *name );
00086
00094 extern CCMIOError CCMIOSetName( CCMIOError *err, CCMIONode node,
00095 const char *name );
00096
00104 extern CCMIOError CCMIOGetLabel( CCMIOError *err, CCMIONode node, char *label );
00105
00107 extern CCMIOError CCMIOSetLabel( CCMIOError *err, CCMIONode node,
00108 const char *label );
00109
00126 extern CCMIOError CCMIOCreateNode( CCMIOError *err, CCMIONode parent,
00127 int openDup, const char *name,
00128 const char *label, CCMIONode *node );
00129
00141 extern CCMIOError CCMIOCreateLink( CCMIOError *err, CCMIONode parent,
00142 const char *name, const char *filename,
00143 const char *destName, CCMIONode *node );
00144
00146 extern CCMIOError CCMIODeleteNode( CCMIOError *err, CCMIONode node );
00147
00149 extern CCMIOError CCMIODeleteAllChildren( CCMIOError *err, CCMIONode node );
00150
00152 extern CCMIOError CCMIOMoveNode( CCMIOError *err, CCMIONode node,
00153 CCMIONode newParent );
00154
00164 extern CCMIOError CCMIOGetDimensions( CCMIOError *err, CCMIONode node,
00165 int *nDims, int **dims );
00166
00168 extern CCMIOError CCMIOGetDataSize( CCMIOError *err, CCMIONode node,
00169 unsigned int *bytes );
00170
00172 extern CCMIOError CCMIOGetDataType( CCMIOError *err, CCMIONode node,
00173 CCMIODataType *type);
00174
00186 extern CCMIOError CCMIOSetDataType( CCMIOError *err, CCMIONode node,
00187 CCMIODataType type, ... );
00188 extern CCMIOError CCMIOvSetDataType( CCMIOError *err, CCMIONode node,
00189 CCMIODataType type, va_list args );
00190 extern CCMIOError CCMIOSetDataTypev( CCMIOError *err, CCMIONode node,
00191 CCMIODataType type,
00192 int nDims, const int *dims );
00193
00209 extern CCMIOError CCMIOReadData( CCMIOError *err, CCMIONode node, void *data,
00210 CCMIODataType expected, int dimsExpected );
00211
00224 extern CCMIOError CCMIOReadDataPoint( CCMIOError *err, CCMIONode node,
00225 void *data, ...);
00226
00236 extern CCMIOError CCMIOWriteDataPoint( CCMIOError *err, CCMIONode node,
00237 void *data, ... );
00238
00241 CCMIOError CCMIOWriteData( CCMIOError *err, CCMIONode node, const void *data );
00242
00244 int CCMIOAreNodesEqual( CCMIONode node1, CCMIONode node2 );
00245
00247 CCMIOError CCMIOGetRootNode( CCMIOError *err, CCMIONode node, CCMIONode *root );
00248
00249
00250 #ifdef __cplusplus
00251 }
00252 #endif
00253 #endif // CCMIO_CORE_H