IO Module

All the definitions in the IO module can be accessed by including the header file <hippio.h>. Classes, functions and variables are all defined within the HIPP::IO namespace. Code that uses the IO module would be like

/* src.cpp */

#include <hippio.h>                         // include all definitions in HIPP IO

int main(int argc, char const *argv[]){
    HIPP::IO::H5File file("list.h5", "w");  // create a new file of HDF5 format

    // perform IO on the file instance
}

To generate the executable binary, the links to “libhippio.so” and “libhippcntl.so” are necessary. Depending on your installation of the HDF5 library, the link to libhdf5.so would also be required. The compiling command in an Unix-like system would be like

$ g++ -std=c++17 src.cpp -lhippio -lhippcntl -lhdf5

To avoid confusion, we list the convetions used in this API reference:

  • The term Standard means the HDF5 standard C APIs (types, functions, variables, macros, etc.) defined by the HDF5 Group. E.g., the Standard hid_t means the generic object type defined by HDF5 C API.

  • The HIPP IO library has three components: the High-level API, the Extended API, and the Intermediate-level API (see below for the detail API references of each component).

  • The documentation text of one definition would probably refer to other definitions. If they are in the same namespace (HIPP::IO here), we drop the namespace specifiers for clarity (e.g., class H5File means class HIPP::IO::H5File).

  • The example code that uses C++ standard library may ignore the std:: namespace specifier (namely, assume a global using namespace std is used). This is not good in practice, but makes the example code more compact.

Intermediate-level API