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_info_t {
00092 unsigned long fileno;
00093 haddr_t addr;
00094 H5O_type_t type;
00095 unsigned rc;
00096 time_t atime;
00097 time_t mtime;
00098 time_t ctime;
00099 time_t btime;
00100 hsize_t num_attrs;
00101 struct {
00102 unsigned version;
00103 unsigned nmesgs;
00104 unsigned nchunks;
00105 unsigned flags;
00106 struct {
00107 hsize_t total;
00108 hsize_t meta;
00109 hsize_t mesg;
00110 hsize_t free;
00111 } space;
00112 struct {
00113 uint64_t present;
00114 uint64_t shared;
00115 } mesg;
00116 } hdr;
00117
00118 struct {
00119 H5_ih_info_t obj;
00120 H5_ih_info_t attr;
00121 } meta_size;
00122 } H5O_info_t;
00123
00124
00125 typedef uint32_t H5O_msg_crt_idx_t;
00126
00127
00128 typedef herr_t (*H5O_iterate_t)(hid_t obj, const char *name, const H5O_info_t *info,
00129 void *op_data);
00130
00131
00132
00133
00134
00135
00136
00137 #ifdef __cplusplus
00138 extern "C" {
00139 #endif
00140
00141
00142
00143
00144 H5_DLL hid_t H5Oopen(hid_t loc_id, const char *name, hid_t lapl_id);
00145 H5_DLL hid_t H5Oopen_by_addr(hid_t loc_id, haddr_t addr);
00146 H5_DLL hid_t H5Oopen_by_idx(hid_t loc_id, const char *group_name,
00147 H5_index_t idx_type, H5_iter_order_t order, hsize_t n, hid_t lapl_id);
00148 H5_DLL herr_t H5Oget_info(hid_t loc_id, H5O_info_t *oinfo);
00149 H5_DLL herr_t H5Oget_info_by_name(hid_t loc_id, const char *name, H5O_info_t *oinfo,
00150 hid_t lapl_id);
00151 H5_DLL herr_t H5Oget_info_by_idx(hid_t loc_id, const char *group_name,
00152 H5_index_t idx_type, H5_iter_order_t order, hsize_t n, H5O_info_t *oinfo,
00153 hid_t lapl_id);
00154 H5_DLL herr_t H5Olink(hid_t obj_id, hid_t new_loc_id, const char *new_name,
00155 hid_t lcpl_id, hid_t lapl_id);
00156 H5_DLL herr_t H5Oincr_refcount(hid_t object_id);
00157 H5_DLL herr_t H5Odecr_refcount(hid_t object_id);
00158 H5_DLL herr_t H5Ocopy(hid_t src_loc_id, const char *src_name, hid_t dst_loc_id,
00159 const char *dst_name, hid_t ocpypl_id, hid_t lcpl_id);
00160 H5_DLL herr_t H5Oset_comment(hid_t obj_id, const char *comment);
00161 H5_DLL herr_t H5Oset_comment_by_name(hid_t loc_id, const char *name,
00162 const char *comment, hid_t lapl_id);
00163 H5_DLL ssize_t H5Oget_comment(hid_t obj_id, char *comment, size_t bufsize);
00164 H5_DLL ssize_t H5Oget_comment_by_name(hid_t loc_id, const char *name,
00165 char *comment, size_t bufsize, hid_t lapl_id);
00166 H5_DLL herr_t H5Ovisit(hid_t obj_id, H5_index_t idx_type, H5_iter_order_t order,
00167 H5O_iterate_t op, void *op_data);
00168 H5_DLL herr_t H5Ovisit_by_name(hid_t loc_id, const char *obj_name,
00169 H5_index_t idx_type, H5_iter_order_t order, H5O_iterate_t op,
00170 void *op_data, hid_t lapl_id);
00171 H5_DLL herr_t H5Oclose(hid_t object_id);
00172
00173
00174
00175
00176
00177 #ifndef H5_NO_DEPRECATED_SYMBOLS
00178
00179
00180
00181
00182
00183
00184 typedef struct H5O_stat_t {
00185 hsize_t size;
00186 hsize_t free;
00187 unsigned nmesgs;
00188 unsigned nchunks;
00189 } H5O_stat_t;
00190
00191
00192
00193 #endif
00194
00195 #ifdef __cplusplus
00196 }
00197 #endif
00198 #endif
00199