(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");
.
.
.
}