Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Content Layer
id1195548671
Content Column
width50.00001%
id1195578110
classrm_pagetree_col mobile-hide
Content Block
id1195578111
 
Content Column
width50.00001%
id1195548673
classhdf-rm-main-column
Content Block
id1195548672

Include Content
render-without-blockstrue
page.rm-navbar
HTML Wrap
classhdf-print-only

Page Title

HTML Wrap
classhdf-rm-summary-block

Hdf rm anchor
AnchorNamesummary

Excerpt

Retrieves the metadata for an object, identifying the object by an index position

HTML Wrap
classhdf-rm-content-block

Hdf rm anchor
AnchorNameprocedure

Procedure:
HTML Wrap
classhdf-rm-section
HTML Wrap
classhdf_procedure

H5O_GET_INFO_BY_IDX3 ( loc_id, group_name, idx_type, order, n, oinfo, fields, lapl_id )

Hdf rm anchor
AnchorNamesignature

Signature:
HTML Wrap
classhdf-rm-section
HTML Wrap
classhdf-togglebox hdf-c

HTML Add Class
hdf-togglebutton-visible
hdf-togglebutton-visible
selector.hdf-togglebutton.hdf-c

HTML
<pre><code class="language-c">herr_t H5Oget_info_by_idx3 ( hid_t loc_id, const char *group_name, H5_index_t idx_type,
    H5_iter_order_t order, hsize_t n, H5O_info2_t *oinfo, unsigned fields, hid_t lapl_id )</code></pre>
HTML Wrap
classhdf-togglebox hdf-fortran hdf-togglebox-hidden

HTML Add Class
hdf-togglebutton-visible
hdf-togglebutton-visible
selector.hdf-togglebutton.hdf-fortran

HTML
<pre><code class="language-fortran">SUBROUTINE h5oget_info_by_idx_f(loc_id, group_name, index_field, order, n, &
       object_info, hdferr, lapl_id, fields)

    USE, INTRINSIC :: ISO_C_BINDING
    IMPLICIT NONE
    INTEGER(HID_T)  , INTENT(IN)            :: loc_id
    CHARACTER(LEN=*), INTENT(IN)            :: group_name
    INTEGER         , INTENT(IN)            :: index_field
    INTEGER         , INTENT(IN)            :: order
    INTEGER(HSIZE_T), INTENT(IN)            :: n
    TYPE(h5o_info_t), INTENT(OUT), TARGET   :: object_info
    INTEGER         , INTENT(OUT)           :: hdferr
    INTEGER(HID_T)  , INTENT(IN) , OPTIONAL :: lapl_id
    INTEGER         , INTENT(IN) , OPTIONAL :: fields
</code></pre>
Info

Related Fortran2003 Derived Type: h5o_info_t

HTML
<pre><code class="language-fortran"> 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_h5o_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)  :: _LONG)     :: fileno     ! File number that object is located in
     INTEGERTYPE(haddr_tH5O_TOKEN_T_F) :: addrtoken       ! ObjectToken addressfor object 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 array
     INTEGER, DIMENSION(8) :: ctime ! Change time         ! array as specified in the Fortran
     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<t
</code></pre>

Hdf rm anchor
AnchorNameparameters

Parameters:
HTML Wrap
classhdf-rm-section
hid_t loc_idIN: Location identifier of object; may be a file, group, dataset, named datatype or attribute identifier
const char *group_name    IN: Name of group in which object is located
H5_index_t idx_typeIN: Index or field that determines the order
H5_iter_order_t orderIN: Order within field or index
hsize_t nIN: Object for which information is to be returned
H5O_info2_t *oinfoOUT: Buffer in which to return object information
unsigned int fieldsIN: Flags specifying the fields to include in object_info
hid_t lapl_idIN: Link access property list
(Not currently used; pass as NULL.)

Hdf rm anchor
AnchorNamedescription

Description:
HTML Wrap
classhdf-rm-section

H5O_GET_INFO_BY_IDX3 retrieves the metadata describing an object in the struct oinfo, as specified by the location, loc_id, group name, group_name, the index by which objects in that group are tracked, idx_type, the order by which the index is to be traversed, order, and an object’s position n within that index .

If loc_id fully specifies the group in which the object resides, group_name can be a dot (.).

idx_type is of type H5_index_t, defined in H5public.h as:

Bitbucket Server file
repoSlughdf5
branchIdrefs/heads/hdf5_1_12
projectKeyHDFFV
filepathsrc/H5public.h
fileEncodingUS-ASCII
lineStart311
progLangplain
lineEnd321
applicationLink5ac7b370-7412-3c8c-ad20-807a68261336

order is of type H5_iter_order_t defined in H5public.h as:

Bitbucket Server file
repoSlughdf5
branchIdrefs/heads/hdf5_1_12
projectKeyHDFFV
filepathsrc/H5public.h
fileEncodingUS-ASCII
lineStart294
progLangplain
lineEnd301
applicationLink5ac7b370-7412-3c8c-ad20-807a68261336

oinfo, in which the object information is returned, is a struct of type H5O_info2_t, which is defined in H5Opublic.h in the HDF5 source code:   

Bitbucket Server file
repoSlughdf5
branchIdrefs/heads/hdf5_1_12
projectKeyHDFFV
filepathsrc/H5Opublic.h
fileEncodingUS-ASCII
lineStart129
progLangplain
lineEnd141
applicationLink5ac7b370-7412-3c8c-ad20-807a68261336

Note the following about  H50_info2_t:

  • Of the four time fields (atime,  mtime,  ctime, and  btime) only  ctime  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.

H5O_token_t is defined in H5public.h as follows:

Bitbucket Server file
repoSlughdf5
branchIdrefs/heads/hdf5_1_12
projectKeyHDFFV
filepathsrc/H5public.h
fileEncodingUS-ASCII
lineStart337
progLangplain
lineEnd341
applicationLink5ac7b370-7412-3c8c-ad20-807a68261336

The  H5O_type_t  enum indicates the object type and is defined (in  H5Opublic.h) as follows:

Bitbucket Server file
repoSlughdf5
branchIdrefs/heads/hdf5_1_12
projectKeyHDFFV
filepathsrc/H5Opublic.h
fileEncodingUS-ASCII
lineStart101
progLangplain
lineEnd109
applicationLink5ac7b370-7412-3c8c-ad20-807a68261336

Note that object_id refers only to the types specified by H5O_type_t.

The fields parameter contains flags to determine which fields will be filled in in the H5O_info2_t struct returned in oinfo. These flags are defined in the H5Opublic.h file:

FlagPurpose
H5O_INFO_BASICFill in the fileno, addr, type, and rc fields
H5O_INFO_TIMEFill in the atime, mtime, ctime, and btime fields
H5O_INFO_NUM_ATTRSFill in the num_attrs field
H5O_INFO_HDRFill in the hdr field
H5O_INFO_META_SIZEFill in the meta_size field
H5O_INFO_ALLH5O_INFO_BASIC | H5O_INFO_TIME | H5O_INFO_NUM_ATTRS | H5O_INFO_HDR | H5O_INFO_META_SIZE

The link access property list, lapl_id, is not currently used; it should be passed in as NULL.

Hdf rm anchor
AnchorNamereturns

Returns:
HTML Wrap
classhdf-rm-section

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

Hdf rm anchor
AnchorNameexample

Example:
HTML Wrap
classhdf-rm-section
HTML Wrap
classhdf-togglebox hdf-c

Bitbucket Server file
repoSlughdf5
branchIdrefs/heads/1.12/master
projectKeyHDFFV
filepathtest/titerate.c
showLineNumberstrue
lineStart228
progLangplain
lineEnd229
applicationLink5ac7b370-7412-3c8c-ad20-807a68261336

Comment
HTML Wrap
classhdf-togglebox hdf-fortran hdf-togglebox-hidden

Bitbucket Server file
repoSlughdf5
branchIdrefs/heads/1.10/master
projectKeyHDFFV
filepathfortran/examples/compound.f90
showLineNumberstrue
lineStart25
progLangplain
lineEnd35
applicationLink5ac7b370-7412-3c8c-ad20-807a68261336

Hdf rm anchor
AnchorNamehistory

History:
HTML Wrap
classhdf-rm-section
Release    Change
1.12.0Function was introduced in this release.