00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef CGNS_IO_H
00022 #define CGNS_IO_H
00023
00024 #if defined(_WIN32) && defined(BUILD_DLL)
00025 # define CGEXTERN extern _declspec(dllexport)
00026 #else
00027 # define CGEXTERN extern
00028 #endif
00029
00030
00031
00032
00033 #define CGIO_MODE_READ 0
00034 #define CGIO_MODE_WRITE 1
00035 #define CGIO_MODE_MODIFY 2
00036
00037 #define CGIO_FILE_NONE 0
00038 #define CGIO_FILE_ADF 1
00039 #define CGIO_FILE_HDF5 2
00040 #define CGIO_FILE_XML 3
00041
00042
00043
00044 #define CGIO_MAX_DATATYPE_LENGTH 2
00045 #define CGIO_MAX_DIMENSIONS 12
00046 #define CGIO_MAX_NAME_LENGTH 32
00047 #define CGIO_MAX_LABEL_LENGTH 32
00048 #define CGIO_MAX_VERSION_LENGTH 32
00049 #define CGIO_MAX_ERROR_LENGTH 80
00050 #define CGIO_MAX_LINK_DEPTH 100
00051 #define CGIO_MAX_FILE_LENGTH 1024
00052 #define CGIO_MAX_LINK_LENGTH 4096
00053
00054
00055
00056 #define CGIO_CONFIG_XML_DELETED 301
00057 #define CGIO_CONFIG_XML_NAMESPACE 302
00058 #define CGIO_CONFIG_XML_THRESHOLD 303
00059 #define CGIO_CONFIG_XML_COMPRESSION 304
00060
00061
00062
00063 #define CGIO_ERR_NONE 0
00064 #define CGIO_ERR_BAD_CGIO -1
00065 #define CGIO_ERR_MALLOC -2
00066 #define CGIO_ERR_FILE_MODE -3
00067 #define CGIO_ERR_FILE_TYPE -4
00068 #define CGIO_ERR_NULL_FILE -5
00069 #define CGIO_ERR_TOO_SMALL -6
00070 #define CGIO_ERR_NOT_FOUND -7
00071 #define CGIO_ERR_NULL_PATH -8
00072 #define CGIO_ERR_NO_MATCH -9
00073 #define CGIO_ERR_FILE_OPEN -10
00074 #define CGIO_ERR_READ_ONLY -11
00075 #define CGIO_ERR_NULL_STRING -12
00076 #define CGIO_ERR_BAD_OPTION -13
00077 #define CGIO_ERR_FILE_RENAME -14
00078 #define CGIO_ERR_TOO_MANY -15
00079
00080 #ifdef __cplusplus
00081 extern "C" {
00082 #endif
00083
00084
00085
00086 CGEXTERN int cgio_path_add (
00087 const char *path
00088 );
00089
00090 CGEXTERN int cgio_path_delete (
00091 const char *path
00092 );
00093
00094 CGEXTERN int cgio_find_file (
00095 const char *filename,
00096 int file_type,
00097 int max_path_len,
00098 char *pathname
00099 );
00100
00101
00102
00103 CGEXTERN int cgio_is_supported (
00104 int file_type
00105 );
00106
00107 CGEXTERN int cgio_configure (
00108 int what,
00109 void *value
00110 );
00111
00112 CGEXTERN void cgio_cleanup ();
00113
00114 CGEXTERN int cgio_check_file (
00115 const char *filename,
00116 int *file_type
00117 );
00118
00119 CGEXTERN int cgio_compute_data_size (
00120 const char *data_type,
00121 int num_dims,
00122 const int *dim_vals,
00123 unsigned long *count
00124 );
00125
00126
00127
00128 CGEXTERN int cgio_open_file (
00129 const char *filename,
00130 int file_mode,
00131 int file_type,
00132 int *cgio_num
00133 );
00134
00135 CGEXTERN int cgio_close_file (
00136 int cgio_num
00137 );
00138
00139 CGEXTERN int cgio_compress_file (
00140 int cgio_num,
00141 const char *filename
00142 );
00143
00144 CGEXTERN int cgio_copy_file (
00145 int cgio_num_inp,
00146 int cgio_num_out,
00147 int follow_links
00148 );
00149
00150 CGEXTERN int cgio_flush_to_disk (
00151 int cgio_num
00152 );
00153
00154
00155
00156 CGEXTERN int cgio_library_version (
00157 int cgio_num,
00158 char *version
00159 );
00160
00161 CGEXTERN int cgio_file_version (
00162 int cgio_num,
00163 char *file_version,
00164 char *creation_date,
00165 char *modified_date
00166 );
00167
00168 CGEXTERN int cgio_get_root_id (
00169 int cgio_num,
00170 double *rootid
00171 );
00172
00173 CGEXTERN int cgio_get_file_type (
00174 int cgio_num,
00175 int *file_type
00176 );
00177
00178
00179
00180 CGEXTERN void cgio_error_code (
00181 int *errcode,
00182 int *file_type
00183 );
00184
00185 CGEXTERN int cgio_error_message (
00186 int max_len,
00187 char *error_msg
00188 );
00189
00190 CGEXTERN void cgio_error_exit (
00191 const char *msg
00192 );
00193
00194
00195
00196 CGEXTERN int cgio_create_node (
00197 int cgio_num,
00198 double pid,
00199 const char *name,
00200 double *id
00201 );
00202
00203 CGEXTERN int cgio_new_node (
00204 int cgio_num,
00205 double pid,
00206 const char *name,
00207 const char *label,
00208 const char *data_type,
00209 int ndims,
00210 const int *dims,
00211 const void *data,
00212 double *id
00213 );
00214
00215 CGEXTERN int cgio_delete_node (
00216 int cgio_num,
00217 double pid,
00218 double id
00219 );
00220
00221 CGEXTERN int cgio_move_node (
00222 int cgio_num,
00223 double pid,
00224 double id,
00225 double new_pid
00226 );
00227
00228 CGEXTERN int cgio_copy_node (
00229 int cgio_num_inp,
00230 double id_inp,
00231 int cgio_num_out,
00232 double id_out
00233 );
00234
00235 CGEXTERN int cgio_release_id (
00236 int cgio_num,
00237 double id
00238 );
00239
00240
00241
00242 CGEXTERN int cgio_is_link (
00243 int cgio_num,
00244 double id,
00245 int *link_len
00246 );
00247
00248 CGEXTERN int cgio_link_size (
00249 int cgio_num,
00250 double id,
00251 int *file_len,
00252 int *name_len
00253 );
00254
00255 CGEXTERN int cgio_create_link (
00256 int cgio_num,
00257 double pid,
00258 const char *name,
00259 const char *filename,
00260 const char *name_in_file,
00261 double *id
00262 );
00263
00264 CGEXTERN int cgio_get_link (
00265 int cgio_num,
00266 double id,
00267 char *filename,
00268 char *name_in_file
00269 );
00270
00271
00272
00273 CGEXTERN int cgio_number_children (
00274 int cgio_num,
00275 double id,
00276 int *num_children
00277 );
00278
00279 CGEXTERN int cgio_children_ids (
00280 int cgio_num,
00281 double pid,
00282 int start,
00283 int max_ret,
00284 int *num_ret,
00285 double *ids
00286 );
00287
00288 CGEXTERN int cgio_children_names (
00289 int cgio_num,
00290 double pid,
00291 int start,
00292 int max_ret,
00293 int name_len,
00294 int *num_ret,
00295 char *names
00296 );
00297
00298
00299
00300 CGEXTERN int cgio_get_node_id (
00301 int cgio_num,
00302 double pid,
00303 const char *name,
00304 double *id
00305 );
00306
00307 CGEXTERN int cgio_get_name (
00308 int cgio_num,
00309 double id,
00310 char *name
00311 );
00312
00313 CGEXTERN int cgio_get_label (
00314 int cgio_num,
00315 double id,
00316 char *label
00317 );
00318
00319 CGEXTERN int cgio_get_data_type (
00320 int cgio_num,
00321 double id,
00322 char *data_type
00323 );
00324
00325 CGEXTERN int cgio_get_data_size (
00326 int cgio_num,
00327 double id,
00328 unsigned long *data_size
00329 );
00330
00331 CGEXTERN int cgio_get_dimensions (
00332 int cgio_num,
00333 double id,
00334 int *num_dims,
00335 int *dims
00336 );
00337
00338 CGEXTERN int cgio_read_all_data (
00339 int cgio_num,
00340 double id,
00341 void *data
00342 );
00343
00344 CGEXTERN int cgio_read_data (
00345 int cgio_num,
00346 double id,
00347 const int *s_start,
00348 const int *s_end,
00349 const int *s_stride,
00350 int m_num_dims,
00351 const int *m_dims,
00352 const int *m_start,
00353 const int *m_end,
00354 const int *m_stride,
00355 void *data
00356 );
00357
00358
00359
00360 CGEXTERN int cgio_set_name (
00361 int cgio_num,
00362 double pid,
00363 double id,
00364 const char *name
00365 );
00366
00367 CGEXTERN int cgio_set_label (
00368 int cgio_num,
00369 double id,
00370 const char *label
00371 );
00372
00373 CGEXTERN int cgio_set_dimensions (
00374 int cgio_num,
00375 double id,
00376 const char *data_type,
00377 int num_dims,
00378 const int *dims
00379 );
00380
00381 CGEXTERN int cgio_write_all_data (
00382 int cgio_num,
00383 double id,
00384 const void *data
00385 );
00386
00387 CGEXTERN int cgio_write_data (
00388 int cgio_num,
00389 double id,
00390 const int *s_start,
00391 const int *s_end,
00392 const int *s_stride,
00393 int m_num_dims,
00394 const int *m_dims,
00395 const int *m_start,
00396 const int *m_end,
00397 const int *m_stride,
00398 const void *data
00399 );
00400
00401 #ifdef __cplusplus
00402 }
00403 #endif
00404 #undef CGEXTERN
00405 #endif
00406