00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef H5G_PACKAGE
00025 #error "Do not include this file outside the H5G package!"
00026 #endif
00027
00028 #ifndef _H5Gpkg_H
00029 #define _H5Gpkg_H
00030
00031
00032 #include "H5Gprivate.h"
00033
00034
00035 #include "H5ACprivate.h"
00036 #include "H5B2private.h"
00037 #include "H5FLprivate.h"
00038 #include "H5HFprivate.h"
00039 #include "H5HLprivate.h"
00040 #include "H5Oprivate.h"
00041 #include "H5SLprivate.h"
00042
00043
00044
00045
00046
00047
00048 #define H5G_DENSE_FHEAP_ID_LEN 7
00049
00050
00051
00052
00053
00054
00055 #define H5G_TARGET_NORMAL 0x0000
00056 #define H5G_TARGET_SLINK 0x0001
00057 #define H5G_TARGET_MOUNT 0x0002
00058 #define H5G_TARGET_UDLINK 0x0004
00059 #define H5G_TARGET_EXISTS 0x0008
00060 #define H5G_CRT_INTMD_GROUP 0x0010
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072 typedef enum H5G_cache_type_t {
00073 H5G_CACHED_ERROR = -1,
00074 H5G_NOTHING_CACHED = 0,
00075 H5G_CACHED_STAB = 1,
00076 H5G_CACHED_SLINK = 2,
00077
00078 H5G_NCACHED
00079 } H5G_cache_type_t;
00080
00081
00082
00083
00084
00085
00086
00087
00088 typedef union H5G_cache_t {
00089 struct {
00090 haddr_t btree_addr;
00091 haddr_t heap_addr;
00092 } stab;
00093
00094 struct {
00095 size_t lval_offset;
00096 } slink;
00097 } H5G_cache_t;
00098
00099
00100
00101
00102
00103
00104
00105 struct H5G_entry_t {
00106 hbool_t dirty;
00107 H5G_cache_type_t type;
00108 H5G_cache_t cache;
00109 size_t name_off;
00110 haddr_t header;
00111 H5F_t *file;
00112 };
00113
00114
00115
00116
00117
00118
00119
00120 typedef struct H5G_node_t {
00121 H5AC_info_t cache_info;
00122
00123 unsigned nsyms;
00124 H5G_entry_t *entry;
00125 } H5G_node_t;
00126
00127
00128
00129
00130 struct H5G_shared_t {
00131 int fo_count;
00132 hbool_t mounted;
00133 };
00134
00135
00136
00137
00138
00139 struct H5G_t {
00140 H5G_shared_t *shared;
00141 H5O_loc_t oloc;
00142 H5G_name_t path;
00143 };
00144
00145
00146 typedef herr_t (*H5G_lib_iterate_t)(const H5O_link_t *lnk, void *op_data);
00147
00148
00149 typedef enum H5G_link_iterate_op_type_t {
00150 #ifndef H5_NO_DEPRECATED_SYMBOLS
00151 H5G_LINK_OP_OLD,
00152 #endif
00153 H5G_LINK_OP_NEW
00154 } H5G_link_iterate_op_type_t;
00155
00156 typedef struct {
00157 H5G_link_iterate_op_type_t op_type;
00158 union {
00159 #ifndef H5_NO_DEPRECATED_SYMBOLS
00160 H5G_iterate_t op_old;
00161 #endif
00162 H5L_iterate_t op_new;
00163 } op_func;
00164 } H5G_link_iterate_t;
00165
00166
00167 typedef struct {
00168 size_t nlinks;
00169 H5O_link_t *lnks;
00170 } H5G_link_table_t;
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180 typedef struct H5G_bt_common_t {
00181
00182 const char *name;
00183 H5HL_t *heap;
00184 } H5G_bt_common_t;
00185
00186
00187
00188
00189
00190 typedef struct H5G_bt_ins_t {
00191
00192 H5G_bt_common_t common;
00193 const H5O_link_t *lnk;
00194 } H5G_bt_ins_t;
00195
00196
00197
00198
00199
00200 typedef struct H5G_bt_rm_t {
00201
00202 H5G_bt_common_t common;
00203 H5RS_str_t *grp_full_path_r;
00204 } H5G_bt_rm_t;
00205
00206
00207 typedef herr_t (*H5G_bt_find_op_t)(const H5G_entry_t *ent, void *operator_data);
00208
00209
00210
00211
00212
00213 typedef struct H5G_bt_lkp_t {
00214
00215 H5G_bt_common_t common;
00216 H5G_bt_find_op_t op;
00217 void *op_data;
00218
00219
00220 } H5G_bt_lkp_t;
00221
00222
00223
00224
00225
00226 typedef struct H5G_bt_it_it_t {
00227
00228 H5HL_t *heap;
00229 hsize_t skip;
00230 H5G_lib_iterate_t op;
00231 void *op_data;
00232
00233
00234 hsize_t *final_ent;
00235 } H5G_bt_it_it_t;
00236
00237
00238 typedef struct H5G_bt_it_cpy_t {
00239 const H5O_loc_t *src_oloc;
00240 haddr_t src_heap_addr;
00241 H5F_t *dst_file;
00242 H5O_stab_t *dst_stab;
00243 H5O_copy_t *cpy_info;
00244 } H5G_bt_it_cpy_t;
00245
00246
00247 typedef struct H5G_bt_it_idx_common_t {
00248
00249 hsize_t idx;
00250 hsize_t num_objs;
00251 H5G_bt_find_op_t op;
00252 } H5G_bt_it_idx_common_t;
00253
00254
00255 typedef struct H5G_bt_it_bt_t {
00256
00257 size_t alloc_nlinks;
00258 H5HL_t *heap;
00259
00260
00261 H5G_link_table_t *ltable;
00262 } H5G_bt_it_bt_t;
00263
00264
00265
00266
00267
00268
00269 typedef struct H5G_dense_bt2_name_rec_t {
00270 uint8_t id[H5G_DENSE_FHEAP_ID_LEN];
00271 uint32_t hash;
00272 } H5G_dense_bt2_name_rec_t;
00273
00274
00275
00276 typedef struct H5G_dense_bt2_corder_rec_t {
00277 uint8_t id[H5G_DENSE_FHEAP_ID_LEN];
00278 int64_t corder;
00279 } H5G_dense_bt2_corder_rec_t;
00280
00281
00282
00283
00284
00285
00286 typedef struct H5G_bt2_ud_common_t {
00287
00288 H5F_t *f;
00289 hid_t dxpl_id;
00290 H5HF_t *fheap;
00291 const char *name;
00292 uint32_t name_hash;
00293 int64_t corder;
00294 H5B2_found_t found_op;
00295 void *found_op_data;
00296 } H5G_bt2_ud_common_t;
00297
00298
00299
00300
00301
00302 typedef struct H5G_bt2_ud_ins_t {
00303
00304 H5G_bt2_ud_common_t common;
00305 uint8_t id[H5G_DENSE_FHEAP_ID_LEN];
00306 } H5G_bt2_ud_ins_t;
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318 typedef herr_t (*H5G_traverse_t)(H5G_loc_t *grp_loc, const char *name,
00319 const H5O_link_t *lnk, H5G_loc_t *obj_loc, void *operator_data,
00320 H5G_own_loc_t *own_loc);
00321
00322
00323 typedef struct {
00324 hid_t gcpl_id;
00325 } H5G_obj_create_t;
00326
00327
00328
00329
00330
00331
00332
00333
00334
00335 H5_DLLVAR H5B_class_t H5B_SNODE[1];
00336
00337
00338 H5_DLLVAR const H5AC_class_t H5AC_SNODE[1];
00339
00340
00341 H5_DLLVAR const H5B2_class_t H5G_BT2_NAME[1];
00342
00343
00344 H5_DLLVAR const H5B2_class_t H5G_BT2_CORDER[1];
00345
00346
00347 H5FL_EXTERN(H5G_t);
00348
00349
00350 H5FL_EXTERN(H5G_shared_t);
00351
00352
00353
00354
00355
00356
00357
00358
00359 H5_DLL H5G_t *H5G_create(H5F_t *file, hid_t gcpl_id, hid_t dxpl_id);
00360 H5_DLL H5G_t *H5G_create_named(const H5G_loc_t *loc, const char *name,
00361 hid_t lcpl_id, hid_t gcpl_id, hid_t gapl_id, hid_t dxpl_id);
00362 H5_DLL H5G_t *H5G_open_name(const H5G_loc_t *loc, const char *name,
00363 hid_t gapl_id, hid_t dxpl_id);
00364 H5_DLL herr_t H5G_iterate(hid_t loc_id, const char *group_name,
00365 H5_index_t idx_type, H5_iter_order_t order, hsize_t skip, hsize_t *last_lnk,
00366 const H5G_link_iterate_t *lnk_op, void *op_data, hid_t lapl_id, hid_t dxpl_id);
00367
00368
00369
00370
00371 H5_DLL herr_t H5G_traverse_term_interface(void);
00372 H5_DLL herr_t H5G_traverse_special(const H5G_loc_t *grp_loc,
00373 const H5O_link_t *lnk, unsigned target, size_t *nlinks, hbool_t last_comp,
00374 H5G_loc_t *obj_loc, hbool_t *obj_exists, hid_t lapl_id, hid_t dxpl_id);
00375 H5_DLL herr_t H5G_traverse(const H5G_loc_t *loc, const char *name,
00376 unsigned target, H5G_traverse_t op, void *op_data, hid_t lapl_id,
00377 hid_t dxpl_id);
00378
00379
00380
00381
00382 H5_DLL herr_t H5G_init(void);
00383 H5_DLL char *H5G_normalize(const char *name);
00384 H5_DLL const char *H5G_component(const char *name, size_t *size_p);
00385
00386
00387
00388
00389
00390
00391 H5_DLL herr_t H5G_stab_create(H5O_loc_t *grp_oloc, hid_t dxpl_id,
00392 const H5O_ginfo_t *ginfo, H5O_stab_t *stab);
00393 H5_DLL herr_t H5G_stab_create_components(H5F_t *f, H5O_stab_t *stab, size_t size_hint, hid_t dxpl_id);
00394 H5_DLL herr_t H5G_stab_insert(const H5O_loc_t *grp_oloc, const char *name,
00395 H5O_link_t *obj_lnk, hid_t dxpl_id);
00396 H5_DLL herr_t H5G_stab_insert_real(H5F_t *f, H5O_stab_t *stab, const char *name,
00397 H5O_link_t *obj_lnk, hid_t dxpl_id);
00398 H5_DLL herr_t H5G_stab_delete(H5F_t *f, hid_t dxpl_id, const H5O_stab_t *stab);
00399 H5_DLL herr_t H5G_stab_iterate(const H5O_loc_t *oloc, hid_t dxpl_id, H5_iter_order_t order,
00400 hsize_t skip, hsize_t *last_lnk, H5G_lib_iterate_t op, void *op_data);
00401 H5_DLL herr_t H5G_stab_count(struct H5O_loc_t *oloc, hsize_t *num_objs, hid_t dxpl_id);
00402 H5_DLL herr_t H5G_stab_bh_size(H5F_t *f, hid_t dxpl_id, const H5O_stab_t *stab,
00403 H5_ih_info_t *bh_info);
00404 H5_DLL ssize_t H5G_stab_get_name_by_idx(H5O_loc_t *oloc, H5_iter_order_t order,
00405 hsize_t n, char* name, size_t size, hid_t dxpl_id);
00406 H5_DLL herr_t H5G_stab_remove(H5O_loc_t *oloc, hid_t dxpl_id,
00407 H5RS_str_t *grp_full_path_r, const char *name);
00408 H5_DLL herr_t H5G_stab_remove_by_idx(H5O_loc_t *oloc, hid_t dxpl_id,
00409 H5RS_str_t *grp_full_path_r, H5_iter_order_t order, hsize_t n);
00410 H5_DLL herr_t H5G_stab_lookup(H5O_loc_t *grp_oloc, const char *name,
00411 H5O_link_t *lnk, hid_t dxpl_id);
00412 H5_DLL herr_t H5G_stab_lookup_by_idx(H5O_loc_t *grp_oloc, H5_iter_order_t order,
00413 hsize_t n, H5O_link_t *lnk, hid_t dxpl_id);
00414 #ifndef H5_STRICT_FORMAT_CHECKS
00415 H5_DLL herr_t H5G_stab_valid(H5O_loc_t *grp_oloc, hid_t dxpl_id,
00416 H5O_stab_t *alt_stab);
00417 #endif
00418 #ifndef H5_NO_DEPRECATED_SYMBOLS
00419 H5_DLL H5G_obj_t H5G_stab_get_type_by_idx(H5O_loc_t *oloc, hsize_t idx,
00420 hid_t dxpl_id);
00421 #endif
00422
00423
00424
00425
00426
00427 H5_DLL herr_t H5G_ent_copy(H5G_entry_t *dst, const H5G_entry_t *src,
00428 H5_copy_depth_t depth);
00429 H5_DLL herr_t H5G_ent_reset(H5G_entry_t *ent);
00430 H5_DLL herr_t H5G_ent_decode_vec(const H5F_t *f, const uint8_t **pp,
00431 H5G_entry_t *ent, unsigned n);
00432 H5_DLL herr_t H5G_ent_encode_vec(const H5F_t *f, uint8_t **pp,
00433 const H5G_entry_t *ent, unsigned n);
00434 H5_DLL herr_t H5G_ent_convert(H5F_t *f, hid_t dxpl_id, H5HL_t *heap,
00435 const char *name, const H5O_link_t *lnk, H5G_entry_t *ent);
00436 H5_DLL herr_t H5G_ent_debug(const H5G_entry_t *ent, FILE * stream, int indent,
00437 int fwidth, H5HL_t *heap);
00438
00439
00440 H5_DLL herr_t H5G_node_init(H5F_t *f);
00441 H5_DLL size_t H5G_node_size_real(const H5F_t *f);
00442 H5_DLL int H5G_node_iterate(H5F_t *f, hid_t dxpl_id, const void *_lt_key, haddr_t addr,
00443 const void *_rt_key, void *_udata);
00444 H5_DLL int H5G_node_sumup(H5F_t *f, hid_t dxpl_id, const void *_lt_key, haddr_t addr,
00445 const void *_rt_key, void *_udata);
00446 H5_DLL int H5G_node_by_idx(H5F_t *f, hid_t dxpl_id, const void *_lt_key, haddr_t addr,
00447 const void *_rt_key, void *_udata);
00448 H5_DLL int H5G_node_copy(H5F_t *f, hid_t dxpl_id, const void *_lt_key, haddr_t addr,
00449 const void *_rt_key, void *_udata);
00450 H5_DLL int H5G_node_build_table(H5F_t *f, hid_t dxpl_id, const void *_lt_key, haddr_t addr,
00451 const void *_rt_key, void *_udata);
00452 H5_DLL herr_t H5G_node_iterate_size(H5F_t *f, hid_t dxpl_id, const void *_lt_key, haddr_t addr,
00453 const void *_rt_key, void *_udata);
00454
00455
00456 H5_DLL int H5G_link_cmp_name_inc(const void *lnk1, const void *lnk2);
00457 H5_DLL int H5G_link_cmp_name_dec(const void *lnk1, const void *lnk2);
00458 H5_DLL int H5G_link_cmp_corder_inc(const void *lnk1, const void *lnk2);
00459 H5_DLL int H5G_link_cmp_corder_dec(const void *lnk1, const void *lnk2);
00460 H5_DLL herr_t H5G_ent_to_link(H5O_link_t *lnk, const H5HL_t *heap,
00461 const H5G_entry_t *ent, const char *name);
00462 H5_DLL herr_t H5G_link_to_info(const H5O_link_t *lnk, H5L_info_t *linfo);
00463 H5_DLL herr_t H5G_link_to_loc(const H5G_loc_t *grp_loc, const H5O_link_t *lnk,
00464 H5G_loc_t *obj_loc);
00465 H5_DLL herr_t H5G_link_copy_file(H5F_t *dst_file, hid_t dxpl_id,
00466 const H5O_link_t *_src_lnk, const H5O_loc_t *src_oloc, H5O_link_t *dst_lnk,
00467 H5O_copy_t *cpy_info);
00468 H5_DLL herr_t H5G_link_sort_table(H5G_link_table_t *ltable, H5_index_t idx_type,
00469 H5_iter_order_t order);
00470 H5_DLL herr_t H5G_link_iterate_table(const H5G_link_table_t *ltable,
00471 hsize_t skip, hsize_t *last_lnk, const H5G_lib_iterate_t op, void *op_data);
00472 H5_DLL herr_t H5G_link_release_table(H5G_link_table_t *ltable);
00473 H5_DLL herr_t H5G_link_name_replace(H5F_t *file, hid_t dxpl_id,
00474 H5RS_str_t *grp_full_path_r, const H5O_link_t *lnk);
00475
00476
00477 H5_DLL herr_t H5G_compact_insert(const H5O_loc_t *grp_oloc, H5O_link_t *obj_lnk,
00478 hid_t dxpl_id);
00479 H5_DLL ssize_t H5G_compact_get_name_by_idx(H5O_loc_t *oloc, hid_t dxpl_id,
00480 const H5O_linfo_t *linfo, H5_index_t idx_type, H5_iter_order_t order,
00481 hsize_t idx, char *name, size_t size);
00482 H5_DLL herr_t H5G_compact_remove(const H5O_loc_t *oloc, hid_t dxpl_id,
00483 H5RS_str_t *grp_full_path_r, const char *name);
00484 H5_DLL herr_t H5G_compact_remove_by_idx(const H5O_loc_t *oloc, hid_t dxpl_id,
00485 const H5O_linfo_t *linfo, H5RS_str_t *grp_full_path_r, H5_index_t idx_type,
00486 H5_iter_order_t order, hsize_t n);
00487 H5_DLL herr_t H5G_compact_iterate(const H5O_loc_t *oloc, hid_t dxpl_id,
00488 const H5O_linfo_t *linfo, H5_index_t idx_type, H5_iter_order_t order,
00489 hsize_t skip, hsize_t *last_lnk, H5G_lib_iterate_t op, void *op_data);
00490 H5_DLL htri_t H5G_compact_lookup(H5O_loc_t *grp_oloc, const char *name,
00491 H5O_link_t *lnk, hid_t dxpl_id);
00492 H5_DLL herr_t H5G_compact_lookup_by_idx(H5O_loc_t *oloc, hid_t dxpl_id,
00493 const H5O_linfo_t *linfo, H5_index_t idx_type, H5_iter_order_t order,
00494 hsize_t n, H5O_link_t *lnk);
00495 #ifndef H5_NO_DEPRECATED_SYMBOLS
00496 H5_DLL H5G_obj_t H5G_compact_get_type_by_idx(H5O_loc_t *oloc, hid_t dxpl_id,
00497 const H5O_linfo_t *linfo, hsize_t idx);
00498 #endif
00499
00500
00501 H5_DLL herr_t H5G_dense_build_table(H5F_t *f, hid_t dxpl_id, const H5O_linfo_t *linfo,
00502 H5_index_t idx_type, H5_iter_order_t order, H5G_link_table_t *ltable);
00503 H5_DLL herr_t H5G_dense_create(H5F_t *f, hid_t dxpl_id, H5O_linfo_t *linfo,
00504 const H5O_pline_t *pline);
00505 H5_DLL herr_t H5G_dense_insert(H5F_t *f, hid_t dxpl_id,
00506 const H5O_linfo_t *linfo, const H5O_link_t *lnk);
00507 H5_DLL htri_t H5G_dense_lookup(H5F_t *f, hid_t dxpl_id,
00508 const H5O_linfo_t *linfo, const char *name, H5O_link_t *lnk);
00509 H5_DLL herr_t H5G_dense_lookup_by_idx(H5F_t *f, hid_t dxpl_id,
00510 const H5O_linfo_t *linfo, H5_index_t idx_type, H5_iter_order_t order,
00511 hsize_t n, H5O_link_t *lnk);
00512 H5_DLL herr_t H5G_dense_iterate(H5F_t *f, hid_t dxpl_id, const H5O_linfo_t *linfo,
00513 H5_index_t idx_type, H5_iter_order_t order, hsize_t skip, hsize_t *last_lnk,
00514 H5G_lib_iterate_t op, void *op_data);
00515 H5_DLL ssize_t H5G_dense_get_name_by_idx(H5F_t *f, hid_t dxpl_id,
00516 H5O_linfo_t *linfo, H5_index_t idx_type, H5_iter_order_t order, hsize_t n,
00517 char *name, size_t size);
00518 H5_DLL herr_t H5G_dense_remove(H5F_t *f, hid_t dxpl_id, const H5O_linfo_t *linfo,
00519 H5RS_str_t *grp_full_path_r, const char *name);
00520 H5_DLL herr_t H5G_dense_remove_by_idx(H5F_t *f, hid_t dxpl_id,
00521 const H5O_linfo_t *linfo, H5RS_str_t *grp_full_path_r, H5_index_t idx_type,
00522 H5_iter_order_t order, hsize_t n);
00523 H5_DLL herr_t H5G_dense_delete(H5F_t *f, hid_t dxpl_id, H5O_linfo_t *linfo,
00524 hbool_t adj_link);
00525 #ifndef H5_NO_DEPRECATED_SYMBOLS
00526 H5_DLL H5G_obj_t H5G_dense_get_type_by_idx(H5F_t *f, hid_t dxpl_id,
00527 H5O_linfo_t *linfo, hsize_t idx);
00528 #endif
00529
00530
00531 H5_DLL herr_t H5G_obj_create(H5F_t *f, hid_t dxpl_id, hid_t gcpl_id,
00532 H5O_loc_t *oloc);
00533 H5_DLL herr_t H5G_obj_create_real(H5F_t *f, hid_t dxpl_id, const H5O_ginfo_t *ginfo,
00534 const H5O_linfo_t *linfo, const H5O_pline_t *pline, hid_t gcpl_id,
00535 H5O_loc_t *oloc);
00536 H5_DLL htri_t H5G_obj_get_linfo(const H5O_loc_t *grp_oloc, H5O_linfo_t *linfo,
00537 hid_t dxpl_id);
00538 H5_DLL herr_t H5G_obj_insert(const H5O_loc_t *grp_oloc, const char *name,
00539 H5O_link_t *obj_lnk, hbool_t adj_link, hid_t dxpl_id);
00540 H5_DLL herr_t H5G_obj_iterate(const H5O_loc_t *grp_oloc,
00541 H5_index_t idx_type, H5_iter_order_t order, hsize_t skip, hsize_t *last_lnk,
00542 H5G_lib_iterate_t op, void *op_data, hid_t dxpl_id);
00543 H5_DLL herr_t H5G_obj_info(H5O_loc_t *oloc, H5G_info_t *grp_info, hid_t dxpl_id);
00544 H5_DLL ssize_t H5G_obj_get_name_by_idx(H5O_loc_t *oloc, H5_index_t idx_type,
00545 H5_iter_order_t order, hsize_t n, char* name, size_t size, hid_t dxpl_id);
00546 H5_DLL herr_t H5G_obj_remove(H5O_loc_t *oloc, H5RS_str_t *grp_full_path_r,
00547 const char *name, hid_t dxpl_id);
00548 H5_DLL herr_t H5G_obj_remove_by_idx(H5O_loc_t *grp_oloc, H5RS_str_t *grp_full_path_r,
00549 H5_index_t idx_type, H5_iter_order_t order, hsize_t n, hid_t dxpl_id);
00550 H5_DLL htri_t H5G_obj_lookup(H5O_loc_t *grp_oloc, const char *name,
00551 H5O_link_t *lnk, hid_t dxpl_id);
00552 H5_DLL herr_t H5G_obj_lookup_by_idx(H5O_loc_t *grp_oloc, H5_index_t idx_type,
00553 H5_iter_order_t order, hsize_t n, H5O_link_t *lnk, hid_t dxpl_id);
00554
00555
00556
00557
00558 H5_DLL herr_t H5G_name_init(H5G_name_t *name, const char *path);
00559 H5_DLL herr_t H5G_name_set(H5G_name_t *loc, H5G_name_t *obj, const char *name);
00560 H5_DLL H5RS_str_t *H5G_build_fullpath_refstr_str(H5RS_str_t *path_r, const char *name);
00561
00562
00563
00564
00565 H5_DLL herr_t H5G_loc_root(H5F_t *f, H5G_loc_t *loc);
00566 H5_DLL herr_t H5G_loc_copy(H5G_loc_t *dst, const H5G_loc_t *src, H5_copy_depth_t depth);
00567 H5_DLL herr_t H5G_loc_insert(H5G_loc_t *grp_loc, const char *name,
00568 H5G_loc_t *obj_loc, hid_t dxpl_id);
00569
00570
00571 #ifdef H5G_TESTING
00572 H5_DLL htri_t H5G_is_empty_test(hid_t gid);
00573 H5_DLL htri_t H5G_has_links_test(hid_t gid, unsigned *nmsgs);
00574 H5_DLL htri_t H5G_has_stab_test(hid_t gid);
00575 H5_DLL htri_t H5G_is_new_dense_test(hid_t gid);
00576 H5_DLL herr_t H5G_new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count);
00577 H5_DLL herr_t H5G_lheap_size_test(hid_t gid, size_t *lheap_size);
00578 H5_DLL herr_t H5G_user_path_test(hid_t obj_id, char *user_path, size_t *user_path_len, unsigned *user_path_hidden);
00579 H5_DLL herr_t H5G_verify_cached_stab_test(H5O_loc_t *grp_oloc, H5G_entry_t *ent);
00580 #endif
00581
00582 #endif
00583