source: anuga_core/install/winxp/NetCDFWinInstaller/include/H5Ipublic.h @ 7310

Last change on this file since 7310 was 7310, checked in by rwilson, 15 years ago

Added the NetCDF Windows installer.

  • Property svn:executable set to *
File size: 4.5 KB
Line 
1/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2 * Copyright by The HDF Group.                                               *
3 * Copyright by the Board of Trustees of the University of Illinois.         *
4 * All rights reserved.                                                      *
5 *                                                                           *
6 * This file is part of HDF5.  The full HDF5 copyright notice, including     *
7 * terms governing use, modification, and redistribution, is contained in    *
8 * the files COPYING and Copyright.html.  COPYING can be found at the root   *
9 * of the source code distribution tree; Copyright.html can be found at the  *
10 * root level of an installed copy of the electronic HDF5 document set and   *
11 * is linked from the top-level documents page.  It can also be found at     *
12 * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
13 * access to either file, you may request a copy from help@hdfgroup.org.     *
14 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15
16/*
17 * This file contains function prototypes for each exported function in
18 * the H5I module.
19 */
20#ifndef _H5Ipublic_H
21#define _H5Ipublic_H
22
23/* Public headers needed by this file */
24#include "H5public.h"
25
26/*
27 * Library type values.  Start with `1' instead of `0' because it makes the
28 * tracing output look better when hid_t values are large numbers.  Change the
29 * TYPE_BITS in H5I.c if the MAXID gets larger than 32 (an assertion will
30 * fail otherwise).
31 *
32 * When adding types here, add a section to the 'misc19' test in test/tmisc.c
33 * to verify that the H5I{inc|dec|get}_ref() routines work correctly with in.
34 *
35 */
36typedef enum H5I_type_t {
37    H5I_UNINIT          = (-2), /*uninitialized type                        */
38    H5I_BADID           = (-1), /*invalid Type                              */
39    H5I_FILE            = 1,    /*type ID for File objects                  */
40    H5I_GROUP,                  /*type ID for Group objects                 */
41    H5I_DATATYPE,               /*type ID for Datatype objects              */
42    H5I_DATASPACE,              /*type ID for Dataspace objects             */
43    H5I_DATASET,                /*type ID for Dataset objects               */
44    H5I_ATTR,                   /*type ID for Attribute objects             */
45    H5I_REFERENCE,              /*type ID for Reference objects             */
46    H5I_VFL,                    /*type ID for virtual file layer            */
47    H5I_GENPROP_CLS,            /*type ID for generic property list classes */
48    H5I_GENPROP_LST,            /*type ID for generic property lists        */
49    H5I_ERROR_CLASS,            /*type ID for error classes                 */
50    H5I_ERROR_MSG,              /*type ID for error messages                */
51    H5I_ERROR_STACK,            /*type ID for error stacks                  */
52    H5I_NTYPES                  /*number of library types, MUST BE LAST!    */
53} H5I_type_t;
54
55/* Type of atoms to return to users */
56typedef int hid_t;
57#define H5_SIZEOF_HID_T         H5_SIZEOF_INT
58
59/* An invalid object ID. This is also negative for error return. */
60#define H5I_INVALID_HID         (-1)
61
62/*
63 * Function for freeing objects. This function will be called with an object
64 * ID type number and a pointer to the object. The function should free the
65 * object and return non-negative to indicate that the object
66 * can be removed from the ID type. If the function returns negative
67 * (failure) then the object will remain in the ID type.
68 */
69typedef herr_t (*H5I_free_t)(void*);
70
71/* Type of the function to compare objects & keys */
72typedef int (*H5I_search_func_t)(void *obj, hid_t id, void *key);
73
74#ifdef __cplusplus
75extern "C" {
76#endif
77
78/* Public API functions */
79
80H5_DLL hid_t H5Iregister(H5I_type_t type, void *object);
81H5_DLL void *H5Iobject_verify(hid_t id, H5I_type_t id_type);
82H5_DLL void *H5Iremove_verify(hid_t id, H5I_type_t id_type);
83H5_DLL H5I_type_t H5Iget_type(hid_t id);
84H5_DLL hid_t H5Iget_file_id(hid_t id);
85H5_DLL ssize_t H5Iget_name(hid_t id, char *name/*out*/, size_t size);
86H5_DLL int H5Iinc_ref(hid_t id);
87H5_DLL int H5Idec_ref(hid_t id);
88H5_DLL int H5Iget_ref(hid_t id);
89H5_DLL H5I_type_t H5Iregister_type(size_t hash_size, unsigned reserved, H5I_free_t free_func);
90H5_DLL herr_t H5Iclear_type(H5I_type_t type, hbool_t force);
91H5_DLL herr_t H5Idestroy_type(H5I_type_t type);
92H5_DLL int H5Iinc_type_ref(H5I_type_t type);
93H5_DLL int H5Idec_type_ref(H5I_type_t type);
94H5_DLL int H5Iget_type_ref(H5I_type_t type);
95H5_DLL void *H5Isearch(H5I_type_t type, H5I_search_func_t func, void *key);
96H5_DLL herr_t H5Inmembers(H5I_type_t type, hsize_t *num_members);
97H5_DLL htri_t H5Itype_exists(H5I_type_t type);
98
99#ifdef __cplusplus
100}
101#endif
102#endif /* _H5Ipublic_H */
103
Note: See TracBrowser for help on using the repository browser.