diff options
author | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2012-07-16 23:43:29 (GMT) |
---|---|---|
committer | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2012-07-16 23:43:29 (GMT) |
commit | 1e612c3a46880773d53ad315f3aef2104abb9347 (patch) | |
tree | 1259838b4fe2f3bb8ca78c8f0b4dea00557c89d1 /src/H5Iprivate.h | |
parent | 5e94d0336fa7a0ebc0a25d002b413221284691b6 (diff) | |
parent | 75f4e51a1a076ea2f1602619e2a7d7bcce13c2f1 (diff) | |
download | hdf5-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.h | 57 |
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); |