The class hdf_file facilitates I/O of data to hdf files. This class implements a simple way to I/O basic data types and O2scl data types. All files created by the o2scl_hdf::hdf_file class are normal HDF5 files, and can be manipulated in the usual way, for example with h5dump
command-line tool. Users can easily mix code which performs I/O with o2scl_hdf::hdf_file and other O2scl functions with their own HDF code. The sole caveat is that O2scl cannot parse generic HDF5 files, so that HDF files which contain data not output through O2scl cannot always be read by O2scl .
Objects are stored by refering to their dataset name. I/O for basic objects is provided directly in the o2scl_hdf::hdf_file class. Some classes also provide their own I/O functions named hdf_output
and hdf_input
based on the o2scl_hdf::hdf_file class. Some of the current classes which provide I/O are o2scl::table, o2scl::table_units, o2scl::table3d, o2scl::tensor_grid, o2scl::hist, and o2scl::hist_2d. These functions are documented at hdf_io.h .
O2scl formats complicated data types for HDF I/O by combining basic data into groups. For that reason, one cannot use O2scl to read or write HDF files where groups have the same name as a dataset in the current HDF id. All O2scl groups in HDF files come with a fixed-length string named o2scl_type
, which refers to the type of object which has been written to the HDF file as a group.
std::vector
objects, because the C++ standard guarantees this. It is not necessarily possible for uBlas vector objects (nor desirable for vectors built upon slices of matrices or tensors), and thus HDF5 I/O with uBlas vectors or matrices requires an extra copy. See also the discussion I/O and contiguous storage in the User's guide.Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).