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