HDF5  1.12.0
H5Aprivate.h
Go to the documentation of this file.
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 COPYING file, which can be found at the root of the source code *
9  * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
10  * If you do not have access to either file, you may request a copy from *
11  * help@hdfgroup.org. *
12  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
13 
14 /*
15  * This file contains private information about the H5D module
16  */
17 #ifndef _H5Aprivate_H
18 #define _H5Aprivate_H
19 
20 /* Include package's public header */
21 #include "H5Apublic.h"
22 
23 /* Private headers needed by this file */
24 #include "H5Gprivate.h" /* Groups */
25 #include "H5Oprivate.h" /* Object headers */
26 #include "H5Sprivate.h" /* Dataspace */
27 #include "H5Tprivate.h" /* Datatypes */
28 
29 
30 /**************************/
31 /* Library Private Macros */
32 /**************************/
33 
34 
35 /****************************/
36 /* Library Private Typedefs */
37 /****************************/
38 
39 /* Forward references of package typedefs */
40 typedef struct H5A_t H5A_t;
41 
42 /* Attribute iteration operator for internal library callbacks */
43 typedef herr_t (*H5A_lib_iterate_t)(const H5A_t *attr, void *op_data);
44 
45 /* Describe kind of callback to make for each attribute */
47 #ifndef H5_NO_DEPRECATED_SYMBOLS
48  H5A_ATTR_OP_APP, /* Application callback */
49 #endif /* H5_NO_DEPRECATED_SYMBOLS */
50  H5A_ATTR_OP_APP2, /* Revised application callback */
51  H5A_ATTR_OP_LIB /* Library internal callback */
53 
54 typedef struct H5A_attr_iter_op_t {
56  union {
57 #ifndef H5_NO_DEPRECATED_SYMBOLS
58  H5A_operator1_t app_op; /* Application callback for each attribute */
59 #endif /* H5_NO_DEPRECATED_SYMBOLS */
60  H5A_operator2_t app_op2; /* Revised application callback for each attribute */
61  H5A_lib_iterate_t lib_op; /* Library internal callback for each attribute */
62  } u;
64 
65 
66 /*****************************/
67 /* Library-private Variables */
68 /*****************************/
69 
70 
71 /***************************************/
72 /* Library-private Function Prototypes */
73 /***************************************/
74 
75 /* General attribute routines */
76 H5_DLL herr_t H5A_init(void);
77 H5_DLL struct H5O_loc_t *H5A_oloc(H5A_t *attr);
79 H5_DLL H5T_t *H5A_type(const H5A_t *attr);
82  H5_index_t idx_type, H5_iter_order_t order, hsize_t skip,
83  hsize_t *last_attr, const H5A_attr_iter_op_t *attr_op, void *op_data);
84 
85 #endif /* _H5Aprivate_H */
86 
H5A_attr_iter_op_t::op_type
H5A_attr_iter_op_type_t op_type
Definition: H5Aprivate.h:55
H5A_lib_iterate_t
herr_t(* H5A_lib_iterate_t)(const H5A_t *attr, void *op_data)
Definition: H5Aprivate.h:43
H5O_loc_t
Definition: H5Oprivate.h:152
H5A_attr_iter_op_t::app_op2
H5A_operator2_t app_op2
Definition: H5Aprivate.h:60
H5A_attr_iter_op_t::lib_op
H5A_lib_iterate_t lib_op
Definition: H5Aprivate.h:61
H5A_operator2_t
herr_t(* H5A_operator2_t)(hid_t location_id, const char *attr_name, const H5A_info_t *ainfo, void *op_data)
Definition: H5Apublic.h:34
H5Gprivate.h
H5Sprivate.h
H5A_get_space
H5_DLL hid_t H5A_get_space(H5A_t *attr)
Definition: H5Aint.c:857
H5A_ATTR_OP_APP
@ H5A_ATTR_OP_APP
Definition: H5Aprivate.h:48
H5A_attr_iter_op_t::u
union H5A_attr_iter_op_t::@0 u
H5A_init
H5_DLL herr_t H5A_init(void)
Definition: H5A.c:114
H5_iter_order_t
H5_iter_order_t
Definition: H5public.h:295
hid_t
int64_t hid_t
Definition: H5Ipublic.h:55
H5T_t
Definition: H5Tpkg.h:350
H5A_nameof
H5_DLL H5G_name_t * H5A_nameof(H5A_t *attr)
Definition: H5Aint.c:1278
H5A_ATTR_OP_APP2
@ H5A_ATTR_OP_APP2
Definition: H5Aprivate.h:50
H5Oprivate.h
H5O_attr_iterate_real
H5_DLL herr_t H5O_attr_iterate_real(hid_t loc_id, const H5O_loc_t *loc, H5_index_t idx_type, H5_iter_order_t order, hsize_t skip, hsize_t *last_attr, const H5A_attr_iter_op_t *attr_op, void *op_data)
Definition: H5Oattribute.c:1225
H5G_name_t
Definition: H5Gprivate.h:130
H5A_attr_iter_op_type_t
H5A_attr_iter_op_type_t
Definition: H5Aprivate.h:46
H5_DLL
#define H5_DLL
Definition: H5api_adpt.h:234
H5A_oloc
H5_DLL struct H5O_loc_t * H5A_oloc(H5A_t *attr)
Definition: H5Aint.c:1246
H5Tprivate.h
H5A_t
Definition: H5Apkg.h:93
H5A_operator1_t
herr_t(* H5A_operator1_t)(hid_t location_id, const char *attr_name, void *operator_data)
Definition: H5Apublic.h:106
H5A_ATTR_OP_LIB
@ H5A_ATTR_OP_LIB
Definition: H5Aprivate.h:51
H5Apublic.h
herr_t
int herr_t
Definition: H5public.h:128
H5A_type
H5_DLL H5T_t * H5A_type(const H5A_t *attr)
Definition: H5Aint.c:1308
hsize_t
hsize_t
Definition: H5overflow.txt:44
H5A_attr_iter_op_t
Definition: H5Aprivate.h:54
H5_index_t
H5_index_t
Definition: H5public.h:316
H5A_attr_iter_op_t::app_op
H5A_operator1_t app_op
Definition: H5Aprivate.h:58
H5A_attr_iter_op_t
struct H5A_attr_iter_op_t H5A_attr_iter_op_t