summaryrefslogtreecommitdiffstats
path: root/src/H5Gpkg.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2006-10-30 20:03:46 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2006-10-30 20:03:46 (GMT)
commit780fefb82913150a4f95ca25e8d72758e764dbad (patch)
tree2de238c70a59e16e39583948f0137f182a89112c /src/H5Gpkg.h
parent2e333eef246daaa4651fbf423517b6f3b86f85c0 (diff)
downloadhdf5-780fefb82913150a4f95ca25e8d72758e764dbad.zip
hdf5-780fefb82913150a4f95ca25e8d72758e764dbad.tar.gz
hdf5-780fefb82913150a4f95ca25e8d72758e764dbad.tar.bz2
[svn-r12830] Description:
Finish internal work necessary to track creation order in v2 B-tree when group is in "dense" storage form. Tested on: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2)
Diffstat (limited to 'src/H5Gpkg.h')
-rw-r--r--src/H5Gpkg.h48
1 files changed, 35 insertions, 13 deletions
diff --git a/src/H5Gpkg.h b/src/H5Gpkg.h
index 1051846..db4d8c1 100644
--- a/src/H5Gpkg.h
+++ b/src/H5Gpkg.h
@@ -37,10 +37,29 @@
#include "H5Oprivate.h" /* Object headers */
#include "H5SLprivate.h" /* Skip lists */
+/**************************/
+/* Package Private Macros */
+/**************************/
+
/* Standard length of fractal heap ID for link */
#define H5G_DENSE_FHEAP_ID_LEN 7
/*
+ * During name lookups (see H5G_traverse()) we sometimes want information about
+ * a symbolic link or a mount point. The normal operation is to follow the
+ * symbolic link or mount point and return information about its target.
+ */
+#define H5G_TARGET_NORMAL 0x0000
+#define H5G_TARGET_SLINK 0x0001
+#define H5G_TARGET_MOUNT 0x0002
+#define H5G_TARGET_UDLINK 0x0004
+#define H5G_CRT_INTMD_GROUP 0x0008
+
+/****************************/
+/* Package Private Typedefs */
+/****************************/
+
+/*
* Various types of object header information can be cached in a symbol
* table entry (it's normal home is the object header to which the entry
* points). This datatype determines what (if anything) is cached in the
@@ -299,23 +318,16 @@ typedef herr_t (*H5G_traverse_t)(H5G_loc_t *grp_loc/*in*/, const char *name,
const H5O_link_t *lnk/*in*/, H5G_loc_t *obj_loc/*out*/, void *operator_data/*in,out*/,
H5G_own_loc_t *own_loc/*out*/);
-/*
- * During name lookups (see H5G_traverse()) we sometimes want information about
- * a symbolic link or a mount point. The normal operation is to follow the
- * symbolic link or mount point and return information about its target.
- */
-#define H5G_TARGET_NORMAL 0x0000
-#define H5G_TARGET_SLINK 0x0001
-#define H5G_TARGET_MOUNT 0x0002
-#define H5G_TARGET_UDLINK 0x0004
-#define H5G_CRT_INTMD_GROUP 0x0008
-
/* Data structure to hold table of links for a group */
typedef struct {
size_t nlinks; /* # of links in table */
H5O_link_t *lnks; /* Pointer to array of links */
} H5G_link_table_t;
+/*****************************/
+/* Package Private Variables */
+/*****************************/
+
/*
* This is the class identifier to give to the B-tree functions.
*/
@@ -324,6 +336,12 @@ H5_DLLVAR H5B_class_t H5B_SNODE[1];
/* The cache subclass */
H5_DLLVAR const H5AC_class_t H5AC_SNODE[1];
+/* The v2 B-tree class for indexing 'name' field on links */
+H5_DLLVAR const H5B2_class_t H5G_BT2_NAME[1];
+
+/* The v2 B-tree class for indexing 'creation order' field on links */
+H5_DLLVAR const H5B2_class_t H5G_BT2_CORDER[1];
+
/*
* Utility functions
*/
@@ -334,6 +352,10 @@ H5_DLL herr_t H5G_traverse(const H5G_loc_t *loc, const char *name,
unsigned target, H5G_traverse_t op, void *op_data, hid_t lapl_id,
hid_t dxpl_id);
+/******************************/
+/* Package Private Prototypes */
+/******************************/
+
/*
* Functions that understand symbol tables but not names. The
* functions that understand names are exported to the rest of
@@ -370,7 +392,6 @@ H5_DLL herr_t H5G_ent_decode_vec(H5F_t *f, const uint8_t **pp,
H5G_entry_t *ent, unsigned n);
H5_DLL herr_t H5G_ent_encode_vec(H5F_t *f, uint8_t **pp,
const H5G_entry_t *ent, unsigned n);
-H5_DLL herr_t H5G_ent_modified(H5G_entry_t *ent, H5G_type_t cache_type);
H5_DLL herr_t H5G_ent_convert(H5F_t *f, haddr_t heap_addr, const char *name,
const H5O_link_t *lnk, H5G_entry_t *ent, hid_t dxpl_id);
H5_DLL herr_t H5G_ent_debug(H5F_t *f, hid_t dxpl_id, const H5G_entry_t *ent, FILE * stream,
@@ -475,9 +496,10 @@ H5_DLL htri_t H5G_is_empty_test(hid_t gid);
H5_DLL htri_t H5G_has_links_test(hid_t gid, unsigned *nmsgs);
H5_DLL htri_t H5G_has_stab_test(hid_t gid);
H5_DLL htri_t H5G_is_new_dense_test(hid_t gid);
+H5_DLL herr_t H5G_new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count);
H5_DLL herr_t H5G_lheap_size_test(hid_t gid, size_t *lheap_size);
H5_DLL herr_t H5G_user_path_test(hid_t obj_id, char *user_path, size_t *user_path_len, unsigned *user_path_hidden);
#endif /* H5G_TESTING */
-#endif
+#endif /* _H5Gpkg_H */