00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef _H5Opublic_H
00028 #define _H5Opublic_H
00029
00030
00031 #include "H5public.h"
00032 #include "H5Ipublic.h"
00033 #include "H5Lpublic.h"
00034
00035
00036
00037
00038
00039
00040 #define H5O_COPY_SHALLOW_HIERARCHY_FLAG (0x0001u)
00041 #define H5O_COPY_EXPAND_SOFT_LINK_FLAG (0x0002u)
00042 #define H5O_COPY_EXPAND_EXT_LINK_FLAG (0x0004u)
00043 #define H5O_COPY_EXPAND_REFERENCE_FLAG (0x0008u)
00044 #define H5O_COPY_WITHOUT_ATTR_FLAG (0x0010u)
00045 #define H5O_COPY_PRESERVE_NULL_FLAG (0x0020u)
00046 #define H5O_COPY_ALL (0x003Fu)
00047
00048
00049
00050
00051
00052
00053
00054
00055 #define H5O_SHMESG_NONE_FLAG 0x0000
00056 #define H5O_SHMESG_SDSPACE_FLAG ((unsigned)1 << 0x0001)
00057 #define H5O_SHMESG_DTYPE_FLAG ((unsigned)1 << 0x0003)
00058 #define H5O_SHMESG_FILL_FLAG ((unsigned)1 << 0x0005)
00059 #define H5O_SHMESG_PLINE_FLAG ((unsigned)1 << 0x000b)
00060 #define H5O_SHMESG_ATTR_FLAG ((unsigned)1 << 0x000c)
00061 #define H5O_SHMESG_ALL_FLAG (H5O_SHMESG_SDSPACE_FLAG | H5O_SHMESG_DTYPE_FLAG | H5O_SHMESG_FILL_FLAG | H5O_SHMESG_PLINE_FLAG | H5O_SHMESG_ATTR_FLAG)
00062
00063
00064 #define H5O_HDR_CHUNK0_SIZE 0x03
00065 #define H5O_HDR_ATTR_CRT_ORDER_TRACKED 0x04
00066 #define H5O_HDR_ATTR_CRT_ORDER_INDEXED 0x08
00067 #define H5O_HDR_ATTR_STORE_PHASE_CHANGE 0x10
00068 #define H5O_HDR_STORE_TIMES 0x20
00069 #define H5O_HDR_ALL_FLAGS (H5O_HDR_CHUNK0_SIZE | H5O_HDR_ATTR_CRT_ORDER_TRACKED | H5O_HDR_ATTR_CRT_ORDER_INDEXED | H5O_HDR_ATTR_STORE_PHASE_CHANGE | H5O_HDR_STORE_TIMES)
00070
00071
00072
00073
00074 #define H5O_SHMESG_MAX_NINDEXES 8
00075 #define H5O_SHMESG_MAX_LIST_SIZE 5000
00076
00077
00078
00079
00080
00081
00082 typedef enum H5O_type_t {
00083 H5O_TYPE_UNKNOWN = -1,
00084 H5O_TYPE_GROUP,
00085 H5O_TYPE_DATASET,
00086 H5O_TYPE_NAMED_DATATYPE,
00087 H5O_TYPE_NTYPES
00088 } H5O_type_t;
00089
00090
00091 typedef struct H5O_hdr_info_t {
00092 unsigned version;
00093 unsigned nmesgs;
00094 unsigned nchunks;
00095 unsigned flags;
00096 struct {
00097 hsize_t total;
00098 hsize_t meta;
00099 hsize_t mesg;
00100 hsize_t free;
00101 } space;
00102 struct {
00103 uint64_t present;
00104 uint64_t shared;
00105 } mesg;
00106 } H5O_hdr_info_t;
00107
00108
00109 typedef struct H5O_info_t {
00110 unsigned long fileno;
00111 haddr_t addr;
00112 H5O_type_t type;
00113 unsigned rc;
00114 time_t atime;
00115 time_t mtime;
00116 time_t ctime;
00117 time_t btime;
00118 hsize_t num_attrs;
00119 H5O_hdr_info_t hdr;
00120
00121 struct {
00122 H5_ih_info_t obj;
00123 H5_ih_info_t attr;
00124 } meta_size;
00125 } H5O_info_t;
00126
00127
00128 typedef uint32_t H5O_msg_crt_idx_t;
00129
00130
00131 typedef herr_t (*H5O_iterate_t)(hid_t obj, const char *name, const H5O_info_t *info,
00132 void *op_data);
00133
00134
00135
00136
00137
00138
00139
00140 #ifdef __cplusplus
00141 extern "C" {
00142 #endif
00143
00144
00145
00146
00147 H5_DLL hid_t H5Oopen(hid_t loc_id, const char *name, hid_t lapl_id);
00148 H5_DLL hid_t H5Oopen_by_addr(hid_t loc_id, haddr_t addr);
00149 H5_DLL hid_t H5Oopen_by_idx(hid_t loc_id, const char *group_name,
00150 H5_index_t idx_type, H5_iter_order_t order, hsize_t n, hid_t lapl_id);
00151 H5_DLL htri_t H5Oexists_by_name(hid_t loc_id, const char *name, hid_t lapl_id);
00152 H5_DLL herr_t H5Oget_info(hid_t loc_id, H5O_info_t *oinfo);
00153 H5_DLL herr_t H5Oget_info_by_name(hid_t loc_id, const char *name, H5O_info_t *oinfo,
00154 hid_t lapl_id);
00155 H5_DLL herr_t H5Oget_info_by_idx(hid_t loc_id, const char *group_name,
00156 H5_index_t idx_type, H5_iter_order_t order, hsize_t n, H5O_info_t *oinfo,
00157 hid_t lapl_id);
00158 H5_DLL herr_t H5Olink(hid_t obj_id, hid_t new_loc_id, const char *new_name,
00159 hid_t lcpl_id, hid_t lapl_id);
00160 H5_DLL herr_t H5Oincr_refcount(hid_t object_id);
00161 H5_DLL herr_t H5Odecr_refcount(hid_t object_id);
00162 H5_DLL herr_t H5Ocopy(hid_t src_loc_id, const char *src_name, hid_t dst_loc_id,
00163 const char *dst_name, hid_t ocpypl_id, hid_t lcpl_id);
00164 H5_DLL herr_t H5Oset_comment(hid_t obj_id, const char *comment);
00165 H5_DLL herr_t H5Oset_comment_by_name(hid_t loc_id, const char *name,
00166 const char *comment, hid_t lapl_id);
00167 H5_DLL ssize_t H5Oget_comment(hid_t obj_id, char *comment, size_t bufsize);
00168 H5_DLL ssize_t H5Oget_comment_by_name(hid_t loc_id, const char *name,
00169 char *comment, size_t bufsize, hid_t lapl_id);
00170 H5_DLL herr_t H5Ovisit(hid_t obj_id, H5_index_t idx_type, H5_iter_order_t order,
00171 H5O_iterate_t op, void *op_data);
00172 H5_DLL herr_t H5Ovisit_by_name(hid_t loc_id, const char *obj_name,
00173 H5_index_t idx_type, H5_iter_order_t order, H5O_iterate_t op,
00174 void *op_data, hid_t lapl_id);
00175 H5_DLL herr_t H5Oclose(hid_t object_id);
00176
00177
00178
00179
00180
00181 #ifndef H5_NO_DEPRECATED_SYMBOLS
00182
00183
00184
00185
00186
00187
00188 typedef struct H5O_stat_t {
00189 hsize_t size;
00190 hsize_t free;
00191 unsigned nmesgs;
00192 unsigned nchunks;
00193 } H5O_stat_t;
00194
00195
00196
00197 #endif
00198
00199 #ifdef __cplusplus
00200 }
00201 #endif
00202 #endif
00203