Geant4 Cross Reference |
1 // Copyright (C) 2010, Guy Barrand. All rights 2 // See the file tools.license for terms. 3 4 #ifndef toolx_hdf5_atb 5 #define toolx_hdf5_atb 6 7 // The below is internal methods in the HDF5 l 8 9 #include "hdf5_h" 10 11 #include <cstring> 12 13 namespace toolx { 14 namespace hdf5 { 15 16 inline herr_t H5LT_get_attribute_mem(hid_t obj 17 hid_t attr_id; 18 if ( ( attr_id = ::H5Aopen_name( obj_id, att 19 if ( ::H5Aread( attr_id, mem_type_id, data ) 20 ::H5Aclose( attr_id ); 21 return -1; 22 } 23 if ( ::H5Aclose( attr_id ) < 0 ) return -1; 24 return 0; 25 } 26 27 inline herr_t find_attr( hid_t loc_id, const c 28 int ret = 0; 29 char *attr_name = (char*)op_data; 30 if( ::strcmp( name, attr_name ) == 0 ) ret = 31 (void)loc_id; 32 return ret; 33 } 34 35 inline herr_t H5LT_find_attribute( hid_t loc_i 36 unsigned int attr_num; 37 attr_num = 0; 38 return toolx_H5Aiterate( loc_id, &attr_num, 39 } 40 41 inline herr_t H5LT_get_attribute_disk( hid_t l 42 hid_t attr_id; 43 if ( ( attr_id = ::H5Aopen_name( loc_id, att 44 45 hid_t attr_type; 46 if ( (attr_type = ::H5Aget_type( attr_id )) 47 ::H5Tclose( attr_type ); 48 ::H5Aclose( attr_id ); 49 return -1; 50 } 51 52 if ( ::H5Aread( attr_id, attr_type, attr_out 53 ::H5Tclose( attr_type ); 54 ::H5Aclose( attr_id ); 55 return -1; 56 } 57 58 if ( ::H5Tclose( attr_type ) < 0 ) { 59 ::H5Tclose( attr_type ); 60 ::H5Aclose( attr_id ); 61 return -1; 62 } 63 64 if ( ::H5Aclose( attr_id ) < 0 ) return -1; 65 66 return 0; 67 68 } 69 70 }} 71 72 #endif