summaryrefslogtreecommitdiffstats
path: root/src/H5Iprivate.h
diff options
context:
space:
mode:
authorMohamad Chaarawi <chaarawi@hdfgroup.org>2012-07-16 23:43:29 (GMT)
committerMohamad Chaarawi <chaarawi@hdfgroup.org>2012-07-16 23:43:29 (GMT)
commit1e612c3a46880773d53ad315f3aef2104abb9347 (patch)
tree1259838b4fe2f3bb8ca78c8f0b4dea00557c89d1 /src/H5Iprivate.h
parent5e94d0336fa7a0ebc0a25d002b413221284691b6 (diff)
parent75f4e51a1a076ea2f1602619e2a7d7bcce13c2f1 (diff)
downloadhdf5-1e612c3a46880773d53ad315f3aef2104abb9347.zip
hdf5-1e612c3a46880773d53ad315f3aef2104abb9347.tar.gz
hdf5-1e612c3a46880773d53ad315f3aef2104abb9347.tar.bz2
[svn-r22584] merge from trunk and resolve type ID registration
Diffstat (limited to 'src/H5Iprivate.h')
-rw-r--r--src/H5Iprivate.h57
1 files changed, 36 insertions, 21 deletions
diff --git a/src/H5Iprivate.h b/src/H5Iprivate.h
index 1baad39..5f9604e 100644
--- a/src/H5Iprivate.h
+++ b/src/H5Iprivate.h
@@ -30,31 +30,46 @@
#include "H5private.h"
#include "H5FLprivate.h" /* Free Lists */
+/**************************/
+/* Library Private Macros */
+/**************************/
+
/* Macro to determine if a H5I_type_t is a "library type" */
#define H5I_IS_LIB_TYPE( type ) (type > 0 && type < H5I_NTYPES)
-/* Default sizes of the hash-tables for various atom types */
-#define H5I_ERRSTACK_HASHSIZE 64
-#define H5I_FILEID_HASHSIZE 64
-#define H5I_TEMPID_HASHSIZE 64
-#define H5I_DATATYPEID_HASHSIZE 64
-#define H5I_DATASPACEID_HASHSIZE 64
-#define H5I_DATASETID_HASHSIZE 64
-#define H5I_OID_HASHSIZE 64
-#define H5I_GROUPID_HASHSIZE 64
-#define H5I_ATTRID_HASHSIZE 64
-#define H5I_REFID_HASHSIZE 64
-#define H5I_VFL_HASHSIZE 64
-#define H5I_VOL_HASHSIZE 64
-#define H5I_GENPROPCLS_HASHSIZE 64
-#define H5I_GENPROPOBJ_HASHSIZE 128
-#define H5I_ERRCLS_HASHSIZE 64
-#define H5I_ERRMSG_HASHSIZE 64
-#define H5I_ERRSTK_HASHSIZE 64
+/* Flags for ID class */
+#define H5I_CLASS_IS_APPLICATION 0x01
+
+
+/****************************/
+/* Library Private Typedefs */
+/****************************/
+
+typedef struct H5I_class_t {
+ H5I_type_t type_id; /* Class ID for the type */
+ unsigned flags; /* Class behavior flags */
+ size_t hash_size; /* Minimum hash table size for the type */
+ unsigned reserved; /* Number of reserved IDs for this type */
+ /* [A specific number of type entries may be
+ * reserved to enable "constant" values to be
+ * handed out which are valid IDs in the type,
+ * but which do not map to any data structures
+ * and are not allocated dynamically later.]
+ */
+ H5I_free_t free_func; /* Free function for object's of this type */
+ H5I_free2_t free_aux; /* Free function for auxilary objects of this type */
+} H5I_class_t;
+
+
+/*****************************/
+/* Library-private Variables */
+/*****************************/
+
-/* Private Functions in H5I.c */
-H5_DLL H5I_type_t H5I_register_type(H5I_type_t type_id, size_t hash_size, unsigned reserved,
- H5I_free_t free_func, H5I_free2_t free_aux);
+/***************************************/
+/* Library-private Function Prototypes */
+/***************************************/
+H5_DLL herr_t H5I_register_type(const H5I_class_t *cls);
H5_DLL int H5I_nmembers(H5I_type_t type);
H5_DLL herr_t H5I_clear_type(H5I_type_t type, hbool_t force, hbool_t app_ref);
H5_DLL int H5I_destroy_type(H5I_type_t type);