summaryrefslogtreecommitdiffstats
path: root/src/H5Iprivate.h
diff options
context:
space:
mode:
authorNeil Fortner <nfortne2@hdfgroup.org>2008-08-19 16:36:55 (GMT)
committerNeil Fortner <nfortne2@hdfgroup.org>2008-08-19 16:36:55 (GMT)
commit4b141cbc6a55a02b3191db75ef40450d4bc9d92d (patch)
treeca07875ee7b217123e5c330671a38da5bc33c2ae /src/H5Iprivate.h
parente660080290417487a8caf2b14055eda6b39e9f6e (diff)
downloadhdf5-4b141cbc6a55a02b3191db75ef40450d4bc9d92d.zip
hdf5-4b141cbc6a55a02b3191db75ef40450d4bc9d92d.tar.gz
hdf5-4b141cbc6a55a02b3191db75ef40450d4bc9d92d.tar.bz2
[svn-r15486] Purpose: Allow library to shut down properly when objects have reference count
> 1. Description: Added a new field 'app_count' to H5I_id_info_t struct, to track the reference count on an id due to the application. the old 'count' field tracks the total. Generally any id visible to the application gets placed in app_count. Added app_ref boolean parameter to H5I_inc_ref, H5I_dec_ref, H5I_register, H5I_clear_type, and a few other functions, to specify whether the operation(s) being performed on the id(s) are due to the application (TRUE) or not (FALSE). Test added for this case. Tested: kagiso, smirom, linew (h5committest)
Diffstat (limited to 'src/H5Iprivate.h')
-rw-r--r--src/H5Iprivate.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/H5Iprivate.h b/src/H5Iprivate.h
index 42575e4..f06bf79 100644
--- a/src/H5Iprivate.h
+++ b/src/H5Iprivate.h
@@ -52,19 +52,19 @@
/* 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);
H5_DLL int H5I_nmembers(H5I_type_t type);
-H5_DLL herr_t H5I_clear_type(H5I_type_t type, hbool_t force);
+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);
-H5_DLL hid_t H5I_register(H5I_type_t type, void *object);
+H5_DLL hid_t H5I_register(H5I_type_t type, void *object, hbool_t app_ref);
H5_DLL void *H5I_object(hid_t id);
H5_DLL void *H5I_object_verify(hid_t id, H5I_type_t id_type);
H5_DLL H5I_type_t H5I_get_type(hid_t id);
-H5_DLL hid_t H5I_get_file_id(hid_t);
+H5_DLL hid_t H5I_get_file_id(hid_t obj_id, hbool_t app_ref);
H5_DLL void *H5I_remove(hid_t id);
H5_DLL void *H5I_remove_verify(hid_t id, H5I_type_t id_type);
H5_DLL void *H5I_search(H5I_type_t type, H5I_search_func_t func, void *key);
-H5_DLL int H5I_get_ref(hid_t id);
-H5_DLL int H5I_inc_ref(hid_t id);
-H5_DLL int H5I_dec_ref(hid_t id);
+H5_DLL int H5I_get_ref(hid_t id, hbool_t app_ref);
+H5_DLL int H5I_inc_ref(hid_t id, hbool_t app_ref);
+H5_DLL int H5I_dec_ref(hid_t id, hbool_t app_ref);
H5_DLL int H5I_inc_type_ref(H5I_type_t type);
H5_DLL herr_t H5I_dec_type_ref(H5I_type_t type);
H5_DLL int H5I_get_type_ref(H5I_type_t type);