objects

C++ API

HDF5 handlers and C++ RAII

All types are wrapped into h5::impl::hid_t<T> template then

1 T := [ file_handles | property_list ]
2 file_handles := [ fd_t | ds_t | att_t | err_t | grp_t | id_t | obj_t ]
3 property_lists := [ file | group | link | dataset | type | object | attrib | access ]
4 
5 # create access transfer copy
6 file := [fcpl_t | fapl_t ]
7 group := [gcpl_t | gapl_t ]
8 link := [lcpl_t | lapl_t ]
9 dataset := [dcpl_t | dapl_t | dtpl_t ]
10 type := [ tapl_t ]
11 object := [ocpl_t | ocpyl_t ]
12 attrib := [acpl_t

C/C++ type map to HDF5 file space

TODO: write detailed description of supported types, and how memory space is mapped to file space

Support for STL

currently std::vector and std::string

TODO: write detailed description of supported types, and how memory space is mapped to file space

Support for Popular Scientific Libraries

TODO: write detailed description of supported types, and how memory space is mapped to file space

1 T := ([unsigned] ( int8_t | int16_t | int32_t | int64_t )) | ( float | double )
2 S := T | c/c++ struct | std::string
3 ref := std::vector<S>
4  | arma::Row<T> | arma::Col<T> | arma::Mat<T> | arma::Cube<T>
5  | Eigen::Matrix<T,Dynamic,Dynamic> | Eigen::Matrix<T,Dynamic,1> | Eigen::Matrix<T,1,Dynamic>
6  | Eigen::Array<T,Dynamic,Dynamic> | Eigen::Array<T,Dynamic,1> | Eigen::Array<T,1,Dynamic>
7  | blaze::DynamicVector<T,rowVector> | blaze::DynamicVector<T,colVector>
8  | blaze::DynamicVector<T,blaze::rowVector> | blaze::DynamicVector<T,blaze::colVector>
9  | blaze::DynamicMatrix<T,blaze::rowMajor> | blaze::DynamicMatrix<T,blaze::colMajor>
10  | itpp::Mat<T> | itpp::Vec<T>
11  | blitz::Array<T,1> | blitz::Array<T,2> | blitz::Array<T,3>
12  | dlib::Matrix<T> | dlib::Vector<T,1>
13  | ublas::matrix<T> | ublas::vector<T>
14 ptr := T*
15 accept := ref | ptr