(Register Client Library Use Case Scenario)
/* Client error class ID */ hid_t CLIENT_ERROR; /* Major error code IDs */ hid_t CLIENT_ERR_MAJOR_IO; /* Errors on I/O */ hid_t CLIENT_ERR_MAJOR_FILE; /* Errors on file access */ . . . /* Minor error code IDs */ hid_t CLIENT_ERR_MINOR_PERM; /* Invalid permissions */ hid_t CLIENT_ERR_MINOR_HDF5; /* Error in HDF5 */ . . . int Client_register_error { ssize_t name_len, mesg_len; char class_name[32], mesg[32]; H5E_mesg_t mesg_type; /* Register the error class for all client errors */ CLIENT_ERROR=H5Eregister_class("Client Library", "A_CLIENT", "1.0"); /* Query class name */ name_len = H5Eget_class_name(CLIENT_ERROR, class_name, 32); /* Register major error codes */ CLIENT_ERR_MAJOR_IO=H5Ecreate_mesg(CLIENT_ERROR, H5E_MAJOR, "Errors on I/O"); CLIENT_ERR_MAJOR_FILE=H5Ecreate_mesg(CLIENT_ERROR, H5E_MAJOR, "Errors on file access"); /* Query error message */ mesg_len = H5Eget_mesg(CLIENT_ERR_MAJOR_IO, mesg_type, mesg); . . . /* Register minor error codes */ CLIENT_ERR_MINOR_PERM=H5Ecreate_mesg(CLIENT_ERROR, H5E_MINOR, "Invalid Permissions"); CLIENT_ERR_MINOR_HDF5=H5Ecreate_mesg(CLIENT_ERROR, H5E_MINOR, "Error in HDF5"); . . . }