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 #ifndef _H5Gpublic_H
00027 #define _H5Gpublic_H
00028 
00029 
00030 #include <sys/types.h>
00031 
00032 
00033 #include "H5public.h"           
00034 #include "H5Lpublic.h"          
00035 #include "H5Opublic.h"          
00036 #include "H5Tpublic.h"          
00037 
00038 
00039 
00040 
00041 
00042 #ifdef __cplusplus
00043 extern "C" {
00044 #endif
00045 
00046 
00047 
00048 
00049 
00050 
00051 typedef enum H5G_storage_type_t {
00052     H5G_STORAGE_TYPE_UNKNOWN = -1,      
00053     H5G_STORAGE_TYPE_SYMBOL_TABLE,      
00054                                         
00055     H5G_STORAGE_TYPE_COMPACT,           
00056     H5G_STORAGE_TYPE_DENSE              
00057 } H5G_storage_type_t;
00058 
00059 
00060 typedef struct H5G_info_t {
00061     H5G_storage_type_t  storage_type;   
00062     hsize_t     nlinks;                 
00063     int64_t     max_corder;             
00064     hbool_t     mounted;                
00065 } H5G_info_t;
00066 
00067 
00068 
00069 
00070 
00071 
00072 
00073 
00074 
00075 H5_DLL hid_t H5Gcreate2(hid_t loc_id, const char *name, hid_t lcpl_id,
00076     hid_t gcpl_id, hid_t gapl_id);
00077 H5_DLL hid_t H5Gcreate_anon(hid_t loc_id, hid_t gcpl_id, hid_t gapl_id);
00078 H5_DLL hid_t H5Gopen2(hid_t loc_id, const char *name, hid_t gapl_id);
00079 H5_DLL hid_t H5Gget_create_plist(hid_t group_id);
00080 H5_DLL herr_t H5Gget_info(hid_t loc_id, H5G_info_t *ginfo);
00081 H5_DLL herr_t H5Gget_info_by_name(hid_t loc_id, const char *name, H5G_info_t *ginfo,
00082     hid_t lapl_id);
00083 H5_DLL herr_t H5Gget_info_by_idx(hid_t loc_id, const char *group_name,
00084     H5_index_t idx_type, H5_iter_order_t order, hsize_t n, H5G_info_t *ginfo,
00085     hid_t lapl_id);
00086 H5_DLL herr_t H5Gclose(hid_t group_id);
00087 
00088 
00089 
00090 
00091 
00092 #ifndef H5_NO_DEPRECATED_SYMBOLS
00093 
00094 
00095 
00096 
00097 #define H5G_SAME_LOC H5L_SAME_LOC
00098 #define H5G_LINK_ERROR H5L_TYPE_ERROR
00099 #define H5G_LINK_HARD H5L_TYPE_HARD
00100 #define H5G_LINK_SOFT H5L_TYPE_SOFT
00101 #define H5G_link_t H5L_type_t
00102 
00103 
00104 #define H5G_NTYPES      256             
00105 #define H5G_NLIBTYPES   8               
00106 #define H5G_NUSERTYPES  (H5G_NTYPES - H5G_NLIBTYPES)
00107 #define H5G_USERTYPE(X) (8 + (X))       
00108 
00109 
00110 
00111 
00112 
00113 
00114 
00115 
00116 
00117 
00118 
00119 typedef enum H5G_obj_t {
00120     H5G_UNKNOWN = -1,           
00121     H5G_GROUP,                  
00122     H5G_DATASET,                
00123     H5G_TYPE,                   
00124     H5G_LINK,                   
00125     H5G_UDLINK,                 
00126     H5G_RESERVED_5,             
00127     H5G_RESERVED_6,             
00128     H5G_RESERVED_7              
00129 } H5G_obj_t;
00130 
00131 
00132 typedef herr_t (*H5G_iterate_t)(hid_t group, const char *name, void *op_data);
00133 
00134 
00135 typedef struct H5G_stat_t {
00136     unsigned long       fileno[2];      
00137     unsigned long       objno[2];       
00138     unsigned            nlink;          
00139     H5G_obj_t           type;           
00140     time_t              mtime;          
00141     size_t              linklen;        
00142     H5O_stat_t          ohdr;           
00143 } H5G_stat_t;
00144 
00145 
00146 
00147 H5_DLL hid_t H5Gcreate1(hid_t loc_id, const char *name, size_t size_hint);
00148 H5_DLL hid_t H5Gopen1(hid_t loc_id, const char *name);
00149 H5_DLL herr_t H5Glink(hid_t cur_loc_id, H5G_link_t type, const char *cur_name,
00150     const char *new_name);
00151 H5_DLL herr_t H5Glink2(hid_t cur_loc_id, const char *cur_name, H5G_link_t type,
00152     hid_t new_loc_id, const char *new_name);
00153 H5_DLL herr_t H5Gmove(hid_t src_loc_id, const char *src_name,
00154     const char *dst_name);
00155 H5_DLL herr_t H5Gmove2(hid_t src_loc_id, const char *src_name, hid_t dst_loc_id,
00156     const char *dst_name);
00157 H5_DLL herr_t H5Gunlink(hid_t loc_id, const char *name);
00158 H5_DLL herr_t H5Gget_linkval(hid_t loc_id, const char *name, size_t size,
00159     char *buf);
00160 H5_DLL herr_t H5Gset_comment(hid_t loc_id, const char *name, const char *comment);
00161 H5_DLL int H5Gget_comment(hid_t loc_id, const char *name, size_t bufsize,
00162     char *buf);
00163 H5_DLL herr_t H5Giterate(hid_t loc_id, const char *name, int *idx,
00164         H5G_iterate_t op, void *op_data);
00165 H5_DLL herr_t H5Gget_num_objs(hid_t loc_id, hsize_t *num_objs);
00166 H5_DLL herr_t H5Gget_objinfo(hid_t loc_id, const char *name,
00167     hbool_t follow_link, H5G_stat_t *statbuf);
00168 H5_DLL ssize_t H5Gget_objname_by_idx(hid_t loc_id, hsize_t idx, char* name,
00169     size_t size);
00170 H5_DLL H5G_obj_t H5Gget_objtype_by_idx(hid_t loc_id, hsize_t idx);
00171 
00172 #endif 
00173 
00174 #ifdef __cplusplus
00175 }
00176 #endif
00177 #endif 
00178