- Created by Barbara Jones, last modified on Mar 13, 2020
H5O_GET_INFO1
Retrieves the metadata for an object specified by an identifier
As of HDF5-1.12 this function has been deprecated in favor of the function H5O_GET_INFO3 or the macro H5O_GET_INFO.
Procedure:
H5O_GET_INFO1 ( loc_id, oinfo )
Signature:
herr_t H5Oget_info1 ( hid_t loc_id, H5O_info1_t *oinfo )
SUBROUTINE h5oget_info_f(object_id, object_info, hdferr)
USE, INTRINSIC :: ISO_C_BINDING
IMPLICIT NONE
INTEGER(HID_T) , INTENT(IN) :: object_id
TYPE(h5o_info_t), INTENT(OUT), TARGET :: object_info
INTEGER , INTENT(OUT) :: hdferr
Related Fortran2003 Derived Type: h5o_info_t
TYPE, BIND(C) :: space_t
INTEGER(hsize_t) :: total ! Total space for storing object header in file
INTEGER(hsize_t) :: meta ! Space within header for object header metadata
! information
INTEGER(hsize_t) :: mesg ! Space within header for actual message
! information
INTEGER(hsize_t) :: free ! Free space within object header
END TYPE space_t
TYPE, BIND(C) :: mesg_t
INTEGER(c_int64_t) :: present ! Flags to indicate presence of message type
! in header
INTEGER(c_int64_t) :: shared ! Flags to indicate message type is shared
! in header
END TYPE mesg_t
TYPE, BIND(C) :: hdr_t
INTEGER :: version ! Version number of header format in file
INTEGER :: nmesgs ! Number of object header messages
INTEGER :: nchunks ! Number of object header chunks
INTEGER :: flags ! Object header status flags
TYPE(space_t) :: space
TYPE(mesg_t) :: mesg
END TYPE hdr_t
! Extra metadata storage for obj & attributes
TYPE, BIND(C) :: H5_ih_info_t
INTEGER(hsize_t) :: index_size ! btree and/or list
INTEGER(hsize_t) :: heap_size
END TYPE H5_ih_info_t
TYPE, BIND(C) :: meta_size_t
TYPE(H5_ih_info_t) :: obj ! v1/v2 B-tree & local/fractal heap for
! groups, B-tree for chunked datasets
TYPE(H5_ih_info_t) :: attr ! v2 B-tree & heap for attributes
ENDTYPE meta_size_t
TYPE, BIND(C) :: h5o_info_t
INTEGER(C_LONG) :: fileno ! File number that object is located in
INTEGER(haddr_t) :: addr ! Object address in file
INTEGER(C_INT) :: type ! Basic object type (group, dataset, etc.)
INTEGER :: rc ! Reference count of object
INTEGER, DIMENSION(8) :: atime ! Access time ! -- NOTE --
INTEGER, DIMENSION(8) :: mtime ! Modification time ! Returns an integer
INTEGER, DIMENSION(8) :: ctime ! Change time ! array as specified
INTEGER, DIMENSION(8) :: btime ! Birth time ! in Fortran intrinsic
! DATE_AND_TIME(VALUES)
INTEGER(hsize_t) :: num_attrs ! # of attributes attached to object
TYPE(hdr_t) :: hdr
TYPE(meta_size_t) :: meta_size
END TYPE h5o_info_t
Parameters:
hid_t loc_id | IN: Identifier for object of type specified by H5O_type_t ; may be a file, group, dataset, named datatype or attribute identifier |
H5O_info1_t *oinfo | OUT: Buffer in which to return object information |
Description:
H5O_GET_INFO1 specifies an object by its identifier, loc_id
, and retrieves the metadata describing that object in oinfo
, defined as a struct of type H5O_info1_t:
Include Bitbucket Server for Confluence: An error occured
Connection to Bitbucket Server could not be established. Verify that you have properly configured the Bitbucket Server application link for your Confluence space and that your Bitbucket Server instance is up and running. Error details: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetNote the following about H50_info1_t
:
- Of the four time fields (
atime
,mtime
,ctime
, andbtime
) onlyctime
has been implemented. - The
atime
value is the last time the object was read or written. - The
mtime
value is the last time the raw data in the object was changed. - The
ctime
value is the last time the metadata for the object was changed. - The
btime
value is the time the object was created. - The fields nested in the
meta_size
field are for internal library use only.
An H5O_type_t enum indicates the object type and is defined (in H5Opublic.h
) as follows:
typedef enum H5O_type_t { H5O_TYPE_UNKNOWN = -1, /* Unknown object type */ H5O_TYPE_GROUP, /* Object is a group */ H5O_TYPE_DATASET, /* Object is a dataset */ H5O_TYPE_NAMED_DATATYPE, /* Object is a committed (named) datatype */ H5O_TYPE_NTYPES /* Number of different object types (must */ /* be last!) */ } H5O_type_t;
Note that object_id
refers only to the types specified by H5O_type_t
.
An H5O_hdr_info_t struct holds object header metadata and is defined (in H5Opublic.h
) as follows:
typedef struct H5O_hdr_info_t { unsigned version; /* Version number of header format in file */ unsigned nmesgs; /* Number of object header messages */ unsigned nchunks; /* Number of object header chunks */ unsigned flags; /* Object header status flags */ struct { hsize_t total; /* Total space for storing object header in */ /* file */ hsize_t meta; /* Space within header for object header */ /* metadata information */ hsize_t mesg; /* Space within header for actual message */ /* information */ hsize_t free; /* Free space within object header */ } space; struct { uint64_t present; /* Flags to indicate presence of message */ /* type in header */ uint64_t shared; /* Flags to indicate message type is */ /* shared in header */ } mesg; } H5O_hdr_info_t;
Valid values for the version
field are H5O_VERSION_1
and H5O_VERSION_2
. Version 2 of the object header is smaller and more efficient than version 1.
Please be aware that the information held by H5O_hdr_info_t may only be useful to developers with extensive HDF5 experience.
Note:
If you are iterating through a lot of different objects to retrieve information via the H5O_GET_INFO family of routines, you may see memory building up. This can be due to memory allocation for metadata such as object headers and messages when the iterated objects are put into the metadata cache.
If the memory buildup is not desirable, you can configure a smaller cache via H5F_SET_MDC_CONFIG or set the file access property list via H5P_SET_MDC_CONFIG. A smaller sized cache will force metadata entries to be evicted from the cache, thus freeing the memory associated with the entries.
Returns:
Returns a non-negative value if successful; otherwise returns a negative value.
Example:
History:
Release | Change |
---|---|
1.10.5 | The macro H5O_GET_INFO was removed and the function H5O_GET_INFO1 was copied to H5O_GET_INFO. |
1.10.3 | Function H5O_GET_INFO was copied to H5O_GET_INFO1, and the macro H5O_GET_INFO was created. |
1.8.15 | Added a note about the valid values for the version field in the H5O_hdr_info_t structure. |
1.8.11 | Fortran subroutine introduced in this release. |
1.8.10 | Added H5O_type_t structure to the Description section. Separated H5O_hdr_info_t structure from H5O_info_t in the Description section. Clarified the definition and implementation of the time fields. |
1.8.0 | Function introduced in this release. |
--- Last Modified: March 13, 2020 | 11:11 AM