Page tree

 

JAVA

FORTRAN

C++

C

 

Link

H5R_GET_OBJ_TYPE2

Retrieves the type of object that an object reference points to

Procedure:

H5R_GET_OBJ_TYPE2 ( loc_id, ref_type, ref, obj_type )

Signature:

herr_t H5Rget_obj_type2(
    hid_t loc_id,
    H5R_type_t ref_type,
    void *ref,
    H5O_type_t *obj_type
    )

Replace this text with the Fortran function signature

Parameters:
hid_t loc_idIN: The dataset containing the reference object or the group containing that dataset
H5R_type_t ref_type    IN: Type of reference to query
void *refIN: Reference to query
H5O_type_t *obj_typeOUT: Type of referenced object

Description:

Given an object reference, ref, H5R_GET_OBJ_TYPE2 retrieves the type of the referenced object in obj_type.

A reference type is the type of reference, either an object reference or a dataset region reference. An object reference points to an HDF5 object while a dataset region reference points to a defined region within a dataset.

The referenced object is the object the reference points to. The referenced object type, or the type of the referenced object, is the type of the object that the reference points to.

The location identifier, loc_id, is the identifier for either the dataset containing the object reference or the group containing that dataset.

Valid reference types, to pass in as ref_type, include the following:

H5R_OBJECTObject reference
H5R_DATASET_REGION  Dataset region reference

If the application does not already know the object reference type, that can be determined with three preliminary calls:

  • Call H5D_GET_TYPE on the dataset containing the reference to get a datatype identifier for the dataset’s datatype.
  • Using that datatype identifier, H5T_GET_CLASS returns a datatype class.
  • If the datatype class is H5T_REFERENCE, H5T_EQUAL can then be used to determine whether the reference’s datatype is H5T_STD_REF_OBJ or H5T_STD_REF_DSETREG:
    • If the datatype is H5T_STD_REF_OBJ, the reference object type is H5R_OBJECT.
    • If the datatype is H5T_STD_REF_DSETREG, the reference object type is H5R_DATASET_REGION.

When the function completes successfully, it returns one of the following valid object type values (defined in H5Opublic.h):

H5O_TYPE_GROUPObject is a group
H5O_TYPE_DATASET  Object is a dataset
H5O_TYPE_NAMED_DATATYPEObject is a named datatype

Returns:

Returns a non-negative value if successful; otherwise returns a negative value.

Example:

        /*
         * Open the referenced object, get its name and type.
         */
        obj = H5Rdereference (dset, H5P_DEFAULT, H5R_OBJECT, &rdata[i]);
        status = H5Rget_obj_type (dset, H5R_OBJECT, &rdata[i], &objtype);

     ! Open the referenced object, get its name and type.
     !
     f_ptr = C_LOC(rdata(i))
     CALL H5Rdereference_f(dset, H5R_OBJECT_F, f_ptr, obj, hdferr)
     CALL H5Rget_obj_type_f(dset, H5R_OBJECT_F, f_ptr, objtype, hdferr)

History:
Release    C
1.8.0Function introduced in this release.

--- Last Modified: September 13, 2018 | 12:58 PM