00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 #ifndef _H5Fpublic_H
00020 #define _H5Fpublic_H
00021 
00022 
00023 #include "H5public.h"
00024 #include "H5ACpublic.h"
00025 #include "H5Cpublic.h"
00026 #include "H5Ipublic.h"
00027 
00028 
00029 #undef H5CHECK
00030 #ifndef _H5private_H
00031 #define H5CHECK          H5check(),
00032 #else   
00033 #define H5CHECK
00034 #endif  
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00042 
00043 
00044 
00045 
00046 #define H5F_ACC_RDONLY  (H5CHECK 0x0000u)       
00047 #define H5F_ACC_RDWR    (H5CHECK 0x0001u)       
00048 #define H5F_ACC_TRUNC   (H5CHECK 0x0002u)       
00049 #define H5F_ACC_EXCL    (H5CHECK 0x0004u)       
00050 #define H5F_ACC_DEBUG   (H5CHECK 0x0008u)       
00051 #define H5F_ACC_CREAT   (H5CHECK 0x0010u)       
00052 
00053 
00054 
00055 #define H5F_ACC_DEFAULT (H5CHECK 0xffffu)       
00056 
00057 
00058 #define H5F_OBJ_FILE    (0x0001u)       
00059 #define H5F_OBJ_DATASET (0x0002u)       
00060 #define H5F_OBJ_GROUP   (0x0004u)       
00061 #define H5F_OBJ_DATATYPE (0x0008u)      
00062 #define H5F_OBJ_ATTR    (0x0010u)       
00063 #define H5F_OBJ_ALL     (H5F_OBJ_FILE|H5F_OBJ_DATASET|H5F_OBJ_GROUP|H5F_OBJ_DATATYPE|H5F_OBJ_ATTR)
00064 #define H5F_OBJ_LOCAL   (0x0020u)       
00065                                         
00066 
00067 #define H5F_FAMILY_DEFAULT (hsize_t)0
00068 
00069 #ifdef H5_HAVE_PARALLEL
00070 
00071 
00072 
00073 
00074 
00075 
00076 #define H5F_MPIO_DEBUG_KEY "H5F_mpio_debug_key"
00077 #endif 
00078 
00079 
00080 typedef enum H5F_scope_t {
00081     H5F_SCOPE_LOCAL     = 0,    
00082     H5F_SCOPE_GLOBAL    = 1     
00083 } H5F_scope_t;
00084 
00085 
00086 #define H5F_UNLIMITED   ((hsize_t)(-1L))
00087 
00088 
00089 
00090 
00091 
00092 
00093 
00094 
00095 
00096 typedef enum H5F_close_degree_t {
00097     H5F_CLOSE_DEFAULT   = 0,
00098     H5F_CLOSE_WEAK      = 1,
00099     H5F_CLOSE_SEMI      = 2,
00100     H5F_CLOSE_STRONG    = 3
00101 } H5F_close_degree_t;
00102 
00103 
00104 
00105 typedef struct H5F_info_t {
00106     hsize_t             super_ext_size; 
00107     struct {
00108         hsize_t         hdr_size;       
00109         H5_ih_info_t    msgs_info;      
00110     } sohm;
00111 } H5F_info_t;
00112 
00113 
00114 
00115 
00116 
00117 
00118 typedef enum H5F_mem_t {
00119     H5FD_MEM_NOLIST     = -1,                   
00120     H5FD_MEM_DEFAULT    = 0,                    
00121     H5FD_MEM_SUPER      = 1,
00122     H5FD_MEM_BTREE      = 2,
00123     H5FD_MEM_DRAW       = 3,
00124     H5FD_MEM_GHEAP      = 4,
00125     H5FD_MEM_LHEAP      = 5,
00126     H5FD_MEM_OHDR       = 6,
00127 
00128     H5FD_MEM_NTYPES                             
00129 } H5F_mem_t;
00130 
00131 
00132 typedef enum H5F_libver_t {
00133     H5F_LIBVER_EARLIEST,        
00134     H5F_LIBVER_LATEST           
00135 } H5F_libver_t;
00136 
00137 #ifdef __cplusplus
00138 extern "C" {
00139 #endif
00140 
00141 
00142 H5_DLL htri_t H5Fis_hdf5(const char *filename);
00143 H5_DLL hid_t  H5Fcreate(const char *filename, unsigned flags,
00144                           hid_t create_plist, hid_t access_plist);
00145 H5_DLL hid_t  H5Fopen(const char *filename, unsigned flags,
00146                         hid_t access_plist);
00147 H5_DLL hid_t  H5Freopen(hid_t file_id);
00148 H5_DLL herr_t H5Fflush(hid_t object_id, H5F_scope_t scope);
00149 H5_DLL herr_t H5Fclose(hid_t file_id);
00150 H5_DLL hid_t  H5Fget_create_plist(hid_t file_id);
00151 H5_DLL hid_t  H5Fget_access_plist(hid_t file_id);
00152 H5_DLL herr_t H5Fget_intent(hid_t file_id, unsigned * intent);
00153 H5_DLL ssize_t H5Fget_obj_count(hid_t file_id, unsigned types);
00154 H5_DLL ssize_t H5Fget_obj_ids(hid_t file_id, unsigned types, size_t max_objs, hid_t *obj_id_list);
00155 H5_DLL herr_t H5Fget_vfd_handle(hid_t file_id, hid_t fapl, void **file_handle);
00156 H5_DLL herr_t H5Fmount(hid_t loc, const char *name, hid_t child, hid_t plist);
00157 H5_DLL herr_t H5Funmount(hid_t loc, const char *name);
00158 H5_DLL hssize_t H5Fget_freespace(hid_t file_id);
00159 H5_DLL herr_t H5Fget_filesize(hid_t file_id, hsize_t *size);
00160 H5_DLL herr_t H5Fget_mdc_config(hid_t file_id,
00161                                 H5AC_cache_config_t * config_ptr);
00162 H5_DLL herr_t H5Fset_mdc_config(hid_t file_id,
00163                                 H5AC_cache_config_t * config_ptr);
00164 H5_DLL herr_t H5Fget_mdc_hit_rate(hid_t file_id, double * hit_rate_ptr);
00165 H5_DLL herr_t H5Fget_mdc_size(hid_t file_id,
00166                               size_t * max_size_ptr,
00167                               size_t * min_clean_size_ptr,
00168                               size_t * cur_size_ptr,
00169                               int * cur_num_entries_ptr);
00170 H5_DLL herr_t H5Freset_mdc_hit_rate_stats(hid_t file_id);
00171 H5_DLL ssize_t H5Fget_name(hid_t obj_id, char *name, size_t size);
00172 H5_DLL herr_t H5Fget_info(hid_t obj_id, H5F_info_t *bh_info);
00173 
00174 #ifdef __cplusplus
00175 }
00176 #endif
00177 #endif 
00178