From 45178c87a3099a9fef8bae6f7249ca306cf89629 Mon Sep 17 00:00:00 2001 From: Allen Byrne <50328838+byrnHDF@users.noreply.github.com> Date: Wed, 14 Sep 2022 15:44:24 -0500 Subject: develop Merge doxygen from 1.12 branch (#2095) --- CMakeLists.txt | 5 + CTestConfig.cmake | 2 +- config/cmake/UseJava.cmake | 1 + configure.ac | 6 +- doxygen/CMakeLists.txt | 5 +- doxygen/Doxyfile.in | 10 +- doxygen/aliases | 2 +- doxygen/dox/DDLBNF110.dox | 2 +- doxygen/dox/FileFormatSpec.dox | 23 + doxygen/dox/GettingStarted.dox | 101 +- doxygen/dox/IntroHDF5.dox | 627 + doxygen/dox/LearnBasics.dox | 183 + doxygen/dox/LearnBasics1.dox | 1023 + doxygen/dox/LearnBasics2.dox | 1159 + doxygen/dox/LearnBasics3.dox | 1015 + doxygen/dox/LearnHDFView.dox | 472 + doxygen/dox/ReferenceManual.dox | 59 +- doxygen/dox/Specifications.dox | 16 +- doxygen/dox/TechnicalNotes.dox | 16 +- doxygen/dox/UsersGuide.dox | 403 + doxygen/dox/ViewTools.dox | 1198 + doxygen/dox/ViewTools2.dox | 786 + doxygen/dox/ViewToolsJPSS.dox | 763 + doxygen/dox/high_level/extension.dox | 543 +- doxygen/dox/high_level/high_level.dox | 29 - doxygen/dox/rm-template.dox | 2 +- doxygen/examples/H5.format.1.0.html | 2 +- doxygen/examples/H5.format.1.1.html | 2 +- doxygen/examples/H5.format.2.0.html | 26718 ++++++++++--------- doxygen/examples/H5.format.html | 2 +- doxygen/examples/ThreadSafeLibrary.html | 10 +- doxygen/examples/core_menu.md | 69 + doxygen/examples/fortran_menu.md | 73 + doxygen/examples/high_level_menu.md | 30 + doxygen/examples/java_menu.md | 84 + doxygen/hdf5doxy_layout.xml | 3 +- doxygen/img/DataGroup.png | Bin 0 -> 41665 bytes doxygen/img/Dmodel_fig1.gif | Bin 0 -> 13259 bytes doxygen/img/Dmodel_fig10.gif | Bin 0 -> 11552 bytes doxygen/img/Dmodel_fig11_b.gif | Bin 0 -> 13924 bytes doxygen/img/Dmodel_fig12_a.gif | Bin 0 -> 3182 bytes doxygen/img/Dmodel_fig12_b.gif | Bin 0 -> 4028 bytes doxygen/img/Dmodel_fig14_a.gif | Bin 0 -> 5367 bytes doxygen/img/Dmodel_fig14_b.gif | Bin 0 -> 6432 bytes doxygen/img/Dmodel_fig14_c.gif | Bin 0 -> 7397 bytes doxygen/img/Dmodel_fig14_d.gif | Bin 0 -> 9898 bytes doxygen/img/Dmodel_fig2.gif | Bin 0 -> 12024 bytes doxygen/img/Dmodel_fig3_a.gif | Bin 0 -> 7427 bytes doxygen/img/Dmodel_fig3_c.gif | Bin 0 -> 6800 bytes doxygen/img/Dmodel_fig4_a.gif | Bin 0 -> 4239 bytes doxygen/img/Dmodel_fig4_b.gif | Bin 0 -> 24587 bytes doxygen/img/Dmodel_fig5.gif | Bin 0 -> 7431 bytes doxygen/img/Dmodel_fig6.gif | Bin 0 -> 6497 bytes doxygen/img/Dmodel_fig7_b.gif | Bin 0 -> 26637 bytes doxygen/img/Dmodel_fig8.gif | Bin 0 -> 12217 bytes doxygen/img/Dmodel_fig9.gif | Bin 0 -> 14812 bytes doxygen/img/Dsets_NbitFloating1.gif | Bin 0 -> 6815 bytes doxygen/img/Dsets_NbitFloating2.gif | Bin 0 -> 9335 bytes doxygen/img/Dsets_NbitInteger1.gif | Bin 0 -> 6489 bytes doxygen/img/Dsets_NbitInteger2.gif | Bin 0 -> 10471 bytes doxygen/img/Dsets_fig1.gif | Bin 0 -> 10803 bytes doxygen/img/Dsets_fig10.gif | Bin 0 -> 6538 bytes doxygen/img/Dsets_fig11.gif | Bin 0 -> 21211 bytes doxygen/img/Dsets_fig12.gif | Bin 0 -> 36869 bytes doxygen/img/Dsets_fig2.gif | Bin 0 -> 18083 bytes doxygen/img/Dsets_fig3.gif | Bin 0 -> 27621 bytes doxygen/img/Dsets_fig4.gif | Bin 0 -> 41416 bytes doxygen/img/Dsets_fig5.gif | Bin 0 -> 15893 bytes doxygen/img/Dsets_fig6.gif | Bin 0 -> 2509 bytes doxygen/img/Dsets_fig7.gif | Bin 0 -> 2556 bytes doxygen/img/Dsets_fig8.gif | Bin 0 -> 2273 bytes doxygen/img/Dsets_fig9.gif | Bin 0 -> 4368 bytes doxygen/img/Dspace_CvsF1.gif | Bin 0 -> 8623 bytes doxygen/img/Dspace_CvsF2.gif | Bin 0 -> 8623 bytes doxygen/img/Dspace_CvsF3.gif | Bin 0 -> 8909 bytes doxygen/img/Dspace_CvsF4.gif | Bin 0 -> 8470 bytes doxygen/img/Dspace_combine.gif | Bin 0 -> 5101 bytes doxygen/img/Dspace_complex.gif | Bin 0 -> 6715 bytes doxygen/img/Dspace_features.gif | Bin 0 -> 89809 bytes doxygen/img/Dspace_features_cmpd.gif | Bin 0 -> 31274 bytes doxygen/img/Dspace_move.gif | Bin 0 -> 13255 bytes doxygen/img/Dspace_point.gif | Bin 0 -> 6697 bytes doxygen/img/Dspace_read.gif | Bin 0 -> 14238 bytes doxygen/img/Dspace_select.gif | Bin 0 -> 29452 bytes doxygen/img/Dspace_separate.gif | Bin 0 -> 9911 bytes doxygen/img/Dspace_simple.gif | Bin 0 -> 9709 bytes doxygen/img/Dspace_subset.gif | Bin 0 -> 4790 bytes doxygen/img/Dspace_three_datasets.gif | Bin 0 -> 10912 bytes doxygen/img/Dspace_transfer.gif | Bin 0 -> 15096 bytes doxygen/img/Dspace_write1to2.gif | Bin 0 -> 38748 bytes doxygen/img/Dtypes_fig1.gif | Bin 0 -> 8857 bytes doxygen/img/Dtypes_fig10.gif | Bin 0 -> 41804 bytes doxygen/img/Dtypes_fig11.gif | Bin 0 -> 79789 bytes doxygen/img/Dtypes_fig12.gif | Bin 0 -> 15692 bytes doxygen/img/Dtypes_fig13a.gif | Bin 0 -> 3350 bytes doxygen/img/Dtypes_fig13b.gif | Bin 0 -> 3571 bytes doxygen/img/Dtypes_fig13c.gif | Bin 0 -> 2629 bytes doxygen/img/Dtypes_fig13d.gif | Bin 0 -> 2769 bytes doxygen/img/Dtypes_fig14.gif | Bin 0 -> 50174 bytes doxygen/img/Dtypes_fig15.gif | Bin 0 -> 30871 bytes doxygen/img/Dtypes_fig16.gif | Bin 0 -> 5420 bytes doxygen/img/Dtypes_fig16a.gif | Bin 0 -> 10896 bytes doxygen/img/Dtypes_fig16b.gif | Bin 0 -> 6908 bytes doxygen/img/Dtypes_fig16c.gif | Bin 0 -> 6847 bytes doxygen/img/Dtypes_fig16d.gif | Bin 0 -> 9850 bytes doxygen/img/Dtypes_fig17a.gif | Bin 0 -> 13623 bytes doxygen/img/Dtypes_fig17b.gif | Bin 0 -> 30154 bytes doxygen/img/Dtypes_fig18.gif | Bin 0 -> 9037 bytes doxygen/img/Dtypes_fig19.gif | Bin 0 -> 12014 bytes doxygen/img/Dtypes_fig2.gif | Bin 0 -> 6099 bytes doxygen/img/Dtypes_fig20a.gif | Bin 0 -> 31836 bytes doxygen/img/Dtypes_fig20b.gif | Bin 0 -> 17044 bytes doxygen/img/Dtypes_fig20c.gif | Bin 0 -> 24983 bytes doxygen/img/Dtypes_fig20d.gif | Bin 0 -> 14435 bytes doxygen/img/Dtypes_fig21.gif | Bin 0 -> 56286 bytes doxygen/img/Dtypes_fig22.gif | Bin 0 -> 40000 bytes doxygen/img/Dtypes_fig23.gif | Bin 0 -> 61311 bytes doxygen/img/Dtypes_fig24.gif | Bin 0 -> 30529 bytes doxygen/img/Dtypes_fig25a.gif | Bin 0 -> 17268 bytes doxygen/img/Dtypes_fig25c.gif | Bin 0 -> 17238 bytes doxygen/img/Dtypes_fig26.gif | Bin 0 -> 14866 bytes doxygen/img/Dtypes_fig27.gif | Bin 0 -> 57099 bytes doxygen/img/Dtypes_fig28.gif | Bin 0 -> 49961 bytes doxygen/img/Dtypes_fig3.gif | Bin 0 -> 5654 bytes doxygen/img/Dtypes_fig4.gif | Bin 0 -> 14387 bytes doxygen/img/Dtypes_fig5.gif | Bin 0 -> 16959 bytes doxygen/img/Dtypes_fig6.gif | Bin 0 -> 52742 bytes doxygen/img/Dtypes_fig7.gif | Bin 0 -> 55938 bytes doxygen/img/Dtypes_fig8.gif | Bin 0 -> 20671 bytes doxygen/img/Dtypes_fig9.gif | Bin 0 -> 22036 bytes doxygen/img/Files_fig3.gif | Bin 0 -> 44382 bytes doxygen/img/Files_fig4.gif | Bin 0 -> 38862 bytes doxygen/img/Groups_fig1.gif | Bin 0 -> 5404 bytes doxygen/img/Groups_fig10_a.gif | Bin 0 -> 7745 bytes doxygen/img/Groups_fig10_b.gif | Bin 0 -> 6372 bytes doxygen/img/Groups_fig10_c.gif | Bin 0 -> 8308 bytes doxygen/img/Groups_fig10_d.gif | Bin 0 -> 12963 bytes doxygen/img/Groups_fig11_a.gif | Bin 0 -> 7349 bytes doxygen/img/Groups_fig11_b.gif | Bin 0 -> 7912 bytes doxygen/img/Groups_fig11_c.gif | Bin 0 -> 8589 bytes doxygen/img/Groups_fig11_d.gif | Bin 0 -> 9552 bytes doxygen/img/Groups_fig2.gif | Bin 0 -> 6187 bytes doxygen/img/Groups_fig3.gif | Bin 0 -> 5045 bytes doxygen/img/Groups_fig4.gif | Bin 0 -> 12187 bytes doxygen/img/Groups_fig5.gif | Bin 0 -> 10459 bytes doxygen/img/Groups_fig6.gif | Bin 0 -> 13979 bytes doxygen/img/Groups_fig9_a.gif | Bin 0 -> 6313 bytes doxygen/img/Groups_fig9_aa.gif | Bin 0 -> 7923 bytes doxygen/img/Groups_fig9_b.gif | Bin 0 -> 7352 bytes doxygen/img/Groups_fig9_bb.gif | Bin 0 -> 7336 bytes doxygen/img/LBDsetSubRWProg.png | Bin 0 -> 18297 bytes doxygen/img/Pmodel_fig2.gif | Bin 0 -> 4411 bytes doxygen/img/Pmodel_fig3.gif | Bin 0 -> 39263 bytes doxygen/img/Pmodel_fig5_a.gif | Bin 0 -> 17234 bytes doxygen/img/Pmodel_fig5_b.gif | Bin 0 -> 20671 bytes doxygen/img/Pmodel_fig5_c.gif | Bin 0 -> 23897 bytes doxygen/img/Pmodel_fig5_d.gif | Bin 0 -> 23575 bytes doxygen/img/Pmodel_fig5_e.gif | Bin 0 -> 4304 bytes doxygen/img/Pmodel_fig6.gif | Bin 0 -> 11996 bytes doxygen/img/PropListClassInheritance.gif | Bin 0 -> 17349 bytes doxygen/img/PropListEcosystem.gif | Bin 0 -> 3720 bytes doxygen/img/Shared_Attribute.jpg | Bin 0 -> 37209 bytes doxygen/img/StormDataset.png | Bin 0 -> 21441 bytes doxygen/img/UML_Attribute.jpg | Bin 0 -> 36134 bytes doxygen/img/UML_FileAndProps.gif | Bin 0 -> 6161 bytes doxygen/img/VFL_Drivers.gif | Bin 0 -> 17638 bytes doxygen/img/cmpnddtype.png | Bin 0 -> 19354 bytes doxygen/img/crtatt.png | Bin 0 -> 30414 bytes doxygen/img/crtdset.png | Bin 0 -> 18200 bytes doxygen/img/crtf-pic.png | Bin 0 -> 14322 bytes doxygen/img/crtgrp.png | Bin 0 -> 15588 bytes doxygen/img/dataset.png | Bin 0 -> 25110 bytes doxygen/img/datasetwdata.png | Bin 0 -> 71012 bytes doxygen/img/dataspace.png | Bin 0 -> 15883 bytes doxygen/img/dataspace1.png | Bin 0 -> 11510 bytes doxygen/img/datatype.png | Bin 0 -> 11848 bytes doxygen/img/dtypes_fig25b.gif | Bin 0 -> 6634 bytes doxygen/img/fileobj.png | Bin 0 -> 108220 bytes doxygen/img/group.png | Bin 0 -> 122668 bytes doxygen/img/hdfview-anthrstrm-img.png | Bin 0 -> 68911 bytes doxygen/img/hdfview-anthrstrm-sprdsht.png | Bin 0 -> 63861 bytes doxygen/img/hdfview-anthrstrm.png | Bin 0 -> 46472 bytes doxygen/img/hdfview-imgicon.png | Bin 0 -> 81394 bytes doxygen/img/hdfview-imgprop.png | Bin 0 -> 83103 bytes doxygen/img/hdfview-imgsubset.png | Bin 0 -> 82068 bytes doxygen/img/hdfview-newcmpd.png | Bin 0 -> 100495 bytes doxygen/img/hdfview-newimgsubset.png | Bin 0 -> 85051 bytes doxygen/img/hdfview-prop.png | Bin 0 -> 114672 bytes doxygen/img/hdfview-qf.png | Bin 0 -> 170686 bytes doxygen/img/hdfview-regref.png | Bin 0 -> 231317 bytes doxygen/img/hdfview-regref1.png | Bin 0 -> 134813 bytes doxygen/img/hdfview-regref2.png | Bin 0 -> 195189 bytes doxygen/img/hdfview-regrefval.png | Bin 0 -> 56209 bytes doxygen/img/hdfview-table.png | Bin 0 -> 61329 bytes doxygen/img/hdfview-tree.png | Bin 0 -> 38283 bytes doxygen/img/imgLBDsetCreate.gif | Bin 0 -> 954 bytes doxygen/img/imgLBDsetSubRW11.png | Bin 0 -> 23645 bytes doxygen/img/imgLBDsetSubRW12.png | Bin 0 -> 25324 bytes doxygen/img/imgLBDsetSubRW31.png | Bin 0 -> 17212 bytes doxygen/img/imgLBDsetSubRW32.png | Bin 0 -> 18201 bytes doxygen/img/imgLBDsetSubRW33.png | Bin 0 -> 17781 bytes doxygen/img/imgLBFile.gif | Bin 0 -> 635 bytes doxygen/img/imggrpcreate.gif | Bin 0 -> 928 bytes doxygen/img/imggrpdsets.gif | Bin 0 -> 1812 bytes doxygen/img/imggrps.gif | Bin 0 -> 1644 bytes doxygen/img/newgroupimage.png | Bin 0 -> 44700 bytes doxygen/img/noattrs.png | Bin 0 -> 43386 bytes doxygen/img/properties.png | Bin 0 -> 50472 bytes doxygen/img/scarletletter.png | Bin 0 -> 51013 bytes doxygen/img/showasimage.png | Bin 0 -> 66016 bytes doxygen/img/storm.png | Bin 0 -> 41590 bytes doxygen/img/tutr-lochk.png | Bin 0 -> 9419 bytes doxygen/img/tutr-lochks.png | Bin 0 -> 9652 bytes doxygen/img/tutr-locons.png | Bin 0 -> 8133 bytes doxygen/img/vol_architecture.png | Bin 0 -> 46329 bytes fortran/src/H5Aff.F90 | 6 +- fortran/src/H5Dff.F90 | 52 +- fortran/src/H5Fff.F90 | 10 +- fortran/src/H5Lff.F90 | 15 +- fortran/src/H5Off.F90 | 1 + fortran/src/H5Pff.F90 | 28 +- fortran/src/H5Rff.F90 | 9 +- fortran/src/H5Sff.F90 | 4 +- fortran/src/H5Tff.F90 | 4 +- fortran/src/H5VLff.F90 | 2 +- fortran/src/H5Zff.F90 | 7 + fortran/src/H5_buildiface.F90 | 4 +- fortran/src/H5_ff.F90 | 8 +- hl/fortran/src/H5DSff.F90 | 25 +- hl/fortran/src/H5IMff.F90 | 30 +- hl/fortran/src/H5LTff.F90 | 30 +- hl/fortran/src/H5TBff.F90 | 36 +- hl/src/H5DOpublic.h | 6 +- hl/src/H5DSpublic.h | 28 +- hl/src/H5IMpublic.h | 8 +- hl/src/H5LDpublic.h | 6 +- hl/src/H5LTpublic.h | 128 +- hl/src/H5PTpublic.h | 8 +- hl/src/H5TBpublic.h | 8 +- java/examples/groups/H5Ex_G_Visit.java | 2 +- java/src/Makefile.am | 3 +- java/src/hdf/hdf5lib/CMakeLists.txt | 1 - java/src/hdf/hdf5lib/H5.java | 3549 ++- java/src/hdf/hdf5lib/HDF5Constants.java | 13 +- java/src/hdf/hdf5lib/HDF5GroupInfo.java | 182 - java/src/hdf/hdf5lib/HDFArray.java | 7 +- java/src/hdf/hdf5lib/HDFNativeData.java | 7 +- java/src/hdf/hdf5lib/callbacks/Callbacks.java | 6 +- java/src/hdf/hdf5lib/callbacks/H5A_iterate_cb.java | 2 + java/src/hdf/hdf5lib/callbacks/H5D_append_cb.java | 2 + java/src/hdf/hdf5lib/callbacks/H5D_iterate_cb.java | 2 + java/src/hdf/hdf5lib/callbacks/H5E_walk_cb.java | 2 + java/src/hdf/hdf5lib/callbacks/H5L_iterate_t.java | 2 + java/src/hdf/hdf5lib/callbacks/H5O_iterate_t.java | 2 + .../hdf5lib/callbacks/H5P_cls_close_func_cb.java | 2 + .../hdf5lib/callbacks/H5P_cls_copy_func_cb.java | 2 + .../hdf5lib/callbacks/H5P_cls_create_func_cb.java | 2 + java/src/hdf/hdf5lib/callbacks/H5P_iterate_cb.java | 2 + .../hdf5lib/callbacks/H5P_prp_close_func_cb.java | 2 + .../hdf5lib/callbacks/H5P_prp_compare_func_cb.java | 2 + .../hdf5lib/callbacks/H5P_prp_copy_func_cb.java | 2 + .../hdf5lib/callbacks/H5P_prp_create_func_cb.java | 2 + .../hdf5lib/callbacks/H5P_prp_delete_func_cb.java | 2 + .../hdf/hdf5lib/callbacks/H5P_prp_get_func_cb.java | 2 + .../hdf/hdf5lib/callbacks/H5P_prp_set_func_cb.java | 2 + java/src/hdf/hdf5lib/callbacks/package-info.java | 1 + .../hdf5lib/exceptions/HDF5AttributeException.java | 6 +- .../hdf/hdf5lib/exceptions/HDF5BtreeException.java | 6 +- .../exceptions/HDF5DataFiltersException.java | 6 +- .../exceptions/HDF5DataStorageException.java | 6 +- .../exceptions/HDF5DatasetInterfaceException.java | 6 +- .../HDF5DataspaceInterfaceException.java | 6 +- .../exceptions/HDF5DatatypeInterfaceException.java | 6 +- java/src/hdf/hdf5lib/exceptions/HDF5Exception.java | 18 +- .../exceptions/HDF5ExternalFileListException.java | 6 +- .../exceptions/HDF5FileInterfaceException.java | 6 +- .../exceptions/HDF5FunctionArgumentException.java | 6 +- .../exceptions/HDF5FunctionEntryExitException.java | 6 +- .../hdf/hdf5lib/exceptions/HDF5HeapException.java | 6 +- .../hdf/hdf5lib/exceptions/HDF5IdException.java | 6 +- .../exceptions/HDF5InternalErrorException.java | 6 +- .../hdf/hdf5lib/exceptions/HDF5JavaException.java | 8 +- .../hdf5lib/exceptions/HDF5LibraryException.java | 50 +- .../exceptions/HDF5LowLevelIOException.java | 6 +- .../exceptions/HDF5MetaDataCacheException.java | 6 +- .../exceptions/HDF5ObjectHeaderException.java | 6 +- .../HDF5PropertyListInterfaceException.java | 6 +- .../hdf5lib/exceptions/HDF5ReferenceException.java | 6 +- .../HDF5ResourceUnavailableException.java | 6 +- .../exceptions/HDF5SymbolTableException.java | 6 +- java/src/hdf/hdf5lib/exceptions/package-info.java | 1 + java/src/hdf/hdf5lib/package-info.java | 114 +- java/src/hdf/overview.html | 10 +- java/src/jni/exceptionImp.c | 12 +- java/src/jni/exceptionImp.h | 2 +- java/src/jni/h5Constants.c | 5 + java/test/TestH5.java | 2 +- release_docs/RELEASE.txt | 6 +- src/H5ACpublic.h | 2 +- src/H5Amodule.h | 346 +- src/H5Dmodule.h | 2956 +- src/H5Dpublic.h | 2 +- src/H5ESmodule.h | 88 +- src/H5Emodule.h | 514 +- src/H5Epublic.h | 8 +- src/H5Fmodule.h | 1443 +- src/H5Gmodule.h | 924 +- src/H5Gpublic.h | 10 +- src/H5Imodule.h | 7 +- src/H5Lmodule.h | 7 +- src/H5Mmodule.h | 16 +- src/H5Omodule.h | 7 +- src/H5Opublic.h | 6 +- src/H5PLmodule.h | 9 +- src/H5Pmodule.h | 960 +- src/H5Ppublic.h | 80 +- src/H5Rmodule.h | 27 +- src/H5Smodule.h | 1492 +- src/H5Tmodule.h | 3832 ++- src/H5VLmodule.h | 92 +- src/H5Zmodule.h | 7 +- src/H5module.h | 1404 +- 322 files changed, 38941 insertions(+), 15364 deletions(-) create mode 100644 doxygen/dox/FileFormatSpec.dox create mode 100644 doxygen/dox/IntroHDF5.dox create mode 100644 doxygen/dox/LearnBasics.dox create mode 100644 doxygen/dox/LearnBasics1.dox create mode 100644 doxygen/dox/LearnBasics2.dox create mode 100644 doxygen/dox/LearnBasics3.dox create mode 100644 doxygen/dox/LearnHDFView.dox create mode 100644 doxygen/dox/UsersGuide.dox create mode 100644 doxygen/dox/ViewTools.dox create mode 100644 doxygen/dox/ViewTools2.dox create mode 100644 doxygen/dox/ViewToolsJPSS.dox delete mode 100644 doxygen/dox/high_level/high_level.dox create mode 100644 doxygen/examples/core_menu.md create mode 100644 doxygen/examples/fortran_menu.md create mode 100644 doxygen/examples/high_level_menu.md create mode 100644 doxygen/examples/java_menu.md create mode 100644 doxygen/img/DataGroup.png create mode 100644 doxygen/img/Dmodel_fig1.gif create mode 100644 doxygen/img/Dmodel_fig10.gif create mode 100644 doxygen/img/Dmodel_fig11_b.gif create mode 100644 doxygen/img/Dmodel_fig12_a.gif create mode 100644 doxygen/img/Dmodel_fig12_b.gif create mode 100644 doxygen/img/Dmodel_fig14_a.gif create mode 100644 doxygen/img/Dmodel_fig14_b.gif create mode 100644 doxygen/img/Dmodel_fig14_c.gif create mode 100644 doxygen/img/Dmodel_fig14_d.gif create mode 100644 doxygen/img/Dmodel_fig2.gif create mode 100644 doxygen/img/Dmodel_fig3_a.gif create mode 100644 doxygen/img/Dmodel_fig3_c.gif create mode 100644 doxygen/img/Dmodel_fig4_a.gif create mode 100644 doxygen/img/Dmodel_fig4_b.gif create mode 100644 doxygen/img/Dmodel_fig5.gif create mode 100644 doxygen/img/Dmodel_fig6.gif create mode 100644 doxygen/img/Dmodel_fig7_b.gif create mode 100644 doxygen/img/Dmodel_fig8.gif create mode 100644 doxygen/img/Dmodel_fig9.gif create mode 100644 doxygen/img/Dsets_NbitFloating1.gif create mode 100644 doxygen/img/Dsets_NbitFloating2.gif create mode 100644 doxygen/img/Dsets_NbitInteger1.gif create mode 100644 doxygen/img/Dsets_NbitInteger2.gif create mode 100644 doxygen/img/Dsets_fig1.gif create mode 100644 doxygen/img/Dsets_fig10.gif create mode 100644 doxygen/img/Dsets_fig11.gif create mode 100644 doxygen/img/Dsets_fig12.gif create mode 100644 doxygen/img/Dsets_fig2.gif create mode 100644 doxygen/img/Dsets_fig3.gif create mode 100644 doxygen/img/Dsets_fig4.gif create mode 100644 doxygen/img/Dsets_fig5.gif create mode 100644 doxygen/img/Dsets_fig6.gif create mode 100644 doxygen/img/Dsets_fig7.gif create mode 100644 doxygen/img/Dsets_fig8.gif create mode 100644 doxygen/img/Dsets_fig9.gif create mode 100644 doxygen/img/Dspace_CvsF1.gif create mode 100644 doxygen/img/Dspace_CvsF2.gif create mode 100644 doxygen/img/Dspace_CvsF3.gif create mode 100644 doxygen/img/Dspace_CvsF4.gif create mode 100644 doxygen/img/Dspace_combine.gif create mode 100644 doxygen/img/Dspace_complex.gif create mode 100644 doxygen/img/Dspace_features.gif create mode 100644 doxygen/img/Dspace_features_cmpd.gif create mode 100644 doxygen/img/Dspace_move.gif create mode 100644 doxygen/img/Dspace_point.gif create mode 100644 doxygen/img/Dspace_read.gif create mode 100644 doxygen/img/Dspace_select.gif create mode 100644 doxygen/img/Dspace_separate.gif create mode 100644 doxygen/img/Dspace_simple.gif create mode 100644 doxygen/img/Dspace_subset.gif create mode 100644 doxygen/img/Dspace_three_datasets.gif create mode 100644 doxygen/img/Dspace_transfer.gif create mode 100644 doxygen/img/Dspace_write1to2.gif create mode 100644 doxygen/img/Dtypes_fig1.gif create mode 100644 doxygen/img/Dtypes_fig10.gif create mode 100644 doxygen/img/Dtypes_fig11.gif create mode 100644 doxygen/img/Dtypes_fig12.gif create mode 100644 doxygen/img/Dtypes_fig13a.gif create mode 100644 doxygen/img/Dtypes_fig13b.gif create mode 100644 doxygen/img/Dtypes_fig13c.gif create mode 100644 doxygen/img/Dtypes_fig13d.gif create mode 100644 doxygen/img/Dtypes_fig14.gif create mode 100644 doxygen/img/Dtypes_fig15.gif create mode 100644 doxygen/img/Dtypes_fig16.gif create mode 100644 doxygen/img/Dtypes_fig16a.gif create mode 100644 doxygen/img/Dtypes_fig16b.gif create mode 100644 doxygen/img/Dtypes_fig16c.gif create mode 100644 doxygen/img/Dtypes_fig16d.gif create mode 100644 doxygen/img/Dtypes_fig17a.gif create mode 100644 doxygen/img/Dtypes_fig17b.gif create mode 100644 doxygen/img/Dtypes_fig18.gif create mode 100644 doxygen/img/Dtypes_fig19.gif create mode 100644 doxygen/img/Dtypes_fig2.gif create mode 100644 doxygen/img/Dtypes_fig20a.gif create mode 100644 doxygen/img/Dtypes_fig20b.gif create mode 100644 doxygen/img/Dtypes_fig20c.gif create mode 100644 doxygen/img/Dtypes_fig20d.gif create mode 100644 doxygen/img/Dtypes_fig21.gif create mode 100644 doxygen/img/Dtypes_fig22.gif create mode 100644 doxygen/img/Dtypes_fig23.gif create mode 100644 doxygen/img/Dtypes_fig24.gif create mode 100644 doxygen/img/Dtypes_fig25a.gif create mode 100644 doxygen/img/Dtypes_fig25c.gif create mode 100644 doxygen/img/Dtypes_fig26.gif create mode 100644 doxygen/img/Dtypes_fig27.gif create mode 100644 doxygen/img/Dtypes_fig28.gif create mode 100644 doxygen/img/Dtypes_fig3.gif create mode 100644 doxygen/img/Dtypes_fig4.gif create mode 100644 doxygen/img/Dtypes_fig5.gif create mode 100644 doxygen/img/Dtypes_fig6.gif create mode 100644 doxygen/img/Dtypes_fig7.gif create mode 100644 doxygen/img/Dtypes_fig8.gif create mode 100644 doxygen/img/Dtypes_fig9.gif create mode 100644 doxygen/img/Files_fig3.gif create mode 100644 doxygen/img/Files_fig4.gif create mode 100644 doxygen/img/Groups_fig1.gif create mode 100644 doxygen/img/Groups_fig10_a.gif create mode 100644 doxygen/img/Groups_fig10_b.gif create mode 100644 doxygen/img/Groups_fig10_c.gif create mode 100644 doxygen/img/Groups_fig10_d.gif create mode 100644 doxygen/img/Groups_fig11_a.gif create mode 100644 doxygen/img/Groups_fig11_b.gif create mode 100644 doxygen/img/Groups_fig11_c.gif create mode 100644 doxygen/img/Groups_fig11_d.gif create mode 100644 doxygen/img/Groups_fig2.gif create mode 100644 doxygen/img/Groups_fig3.gif create mode 100644 doxygen/img/Groups_fig4.gif create mode 100644 doxygen/img/Groups_fig5.gif create mode 100644 doxygen/img/Groups_fig6.gif create mode 100644 doxygen/img/Groups_fig9_a.gif create mode 100644 doxygen/img/Groups_fig9_aa.gif create mode 100644 doxygen/img/Groups_fig9_b.gif create mode 100644 doxygen/img/Groups_fig9_bb.gif create mode 100644 doxygen/img/LBDsetSubRWProg.png create mode 100644 doxygen/img/Pmodel_fig2.gif create mode 100644 doxygen/img/Pmodel_fig3.gif create mode 100644 doxygen/img/Pmodel_fig5_a.gif create mode 100644 doxygen/img/Pmodel_fig5_b.gif create mode 100644 doxygen/img/Pmodel_fig5_c.gif create mode 100644 doxygen/img/Pmodel_fig5_d.gif create mode 100644 doxygen/img/Pmodel_fig5_e.gif create mode 100644 doxygen/img/Pmodel_fig6.gif create mode 100644 doxygen/img/PropListClassInheritance.gif create mode 100644 doxygen/img/PropListEcosystem.gif create mode 100644 doxygen/img/Shared_Attribute.jpg create mode 100644 doxygen/img/StormDataset.png create mode 100644 doxygen/img/UML_Attribute.jpg create mode 100644 doxygen/img/UML_FileAndProps.gif create mode 100644 doxygen/img/VFL_Drivers.gif create mode 100644 doxygen/img/cmpnddtype.png create mode 100644 doxygen/img/crtatt.png create mode 100644 doxygen/img/crtdset.png create mode 100644 doxygen/img/crtf-pic.png create mode 100644 doxygen/img/crtgrp.png create mode 100644 doxygen/img/dataset.png create mode 100644 doxygen/img/datasetwdata.png create mode 100644 doxygen/img/dataspace.png create mode 100644 doxygen/img/dataspace1.png create mode 100644 doxygen/img/datatype.png create mode 100644 doxygen/img/dtypes_fig25b.gif create mode 100644 doxygen/img/fileobj.png create mode 100644 doxygen/img/group.png create mode 100644 doxygen/img/hdfview-anthrstrm-img.png create mode 100644 doxygen/img/hdfview-anthrstrm-sprdsht.png create mode 100644 doxygen/img/hdfview-anthrstrm.png create mode 100644 doxygen/img/hdfview-imgicon.png create mode 100644 doxygen/img/hdfview-imgprop.png create mode 100644 doxygen/img/hdfview-imgsubset.png create mode 100644 doxygen/img/hdfview-newcmpd.png create mode 100644 doxygen/img/hdfview-newimgsubset.png create mode 100644 doxygen/img/hdfview-prop.png create mode 100644 doxygen/img/hdfview-qf.png create mode 100644 doxygen/img/hdfview-regref.png create mode 100644 doxygen/img/hdfview-regref1.png create mode 100644 doxygen/img/hdfview-regref2.png create mode 100644 doxygen/img/hdfview-regrefval.png create mode 100644 doxygen/img/hdfview-table.png create mode 100644 doxygen/img/hdfview-tree.png create mode 100644 doxygen/img/imgLBDsetCreate.gif create mode 100644 doxygen/img/imgLBDsetSubRW11.png create mode 100644 doxygen/img/imgLBDsetSubRW12.png create mode 100644 doxygen/img/imgLBDsetSubRW31.png create mode 100644 doxygen/img/imgLBDsetSubRW32.png create mode 100644 doxygen/img/imgLBDsetSubRW33.png create mode 100644 doxygen/img/imgLBFile.gif create mode 100644 doxygen/img/imggrpcreate.gif create mode 100644 doxygen/img/imggrpdsets.gif create mode 100644 doxygen/img/imggrps.gif create mode 100644 doxygen/img/newgroupimage.png create mode 100644 doxygen/img/noattrs.png create mode 100644 doxygen/img/properties.png create mode 100644 doxygen/img/scarletletter.png create mode 100644 doxygen/img/showasimage.png create mode 100644 doxygen/img/storm.png create mode 100644 doxygen/img/tutr-lochk.png create mode 100644 doxygen/img/tutr-lochks.png create mode 100644 doxygen/img/tutr-locons.png create mode 100755 doxygen/img/vol_architecture.png delete mode 100644 java/src/hdf/hdf5lib/HDF5GroupInfo.java diff --git a/CMakeLists.txt b/CMakeLists.txt index 0a0e4ca..35b345c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,11 @@ if (POLICY CMP0083) cmake_policy (SET CMP0083 NEW) endif () +# Avoid warning about DOWNLOAD_EXTRACT_TIMESTAMP in CMake 3.24: +if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0") + cmake_policy(SET CMP0135 NEW) +endif() + #----------------------------------------------------------------------------- # Instructions for use : Normal Build # diff --git a/CTestConfig.cmake b/CTestConfig.cmake index 514a9d6..b780b86 100644 --- a/CTestConfig.cmake +++ b/CTestConfig.cmake @@ -12,7 +12,7 @@ ## This file should be placed in the root directory of your project. ## Then modify the CMakeLists.txt file in the root directory of your ## project to incorporate the testing dashboard. -## # The following are required to use Dart and the CDash dashboard. +## # The following are required to use Dart and the CDash dashboard ## ENABLE_TESTING() ## INCLUDE(CTest) set (CTEST_PROJECT_NAME "HDF5") diff --git a/config/cmake/UseJava.cmake b/config/cmake/UseJava.cmake index 2351ce8..1de08db 100644 --- a/config/cmake/UseJava.cmake +++ b/config/cmake/UseJava.cmake @@ -1448,6 +1448,7 @@ function(create_javadoc _target) add_custom_target(${_target}_javadoc ALL COMMAND ${Java_JAVADOC_EXECUTABLE} + -Xdoclint:none ${_javadoc_options} ${_javadoc_files} ${_javadoc_packages} diff --git a/configure.ac b/configure.ac index e2fbf04..ab177fc 100644 --- a/configure.ac +++ b/configure.ac @@ -1213,6 +1213,7 @@ if test "X$HDF5_DOXYGEN" = "Xyes"; then AC_SUBST([DOXYGEN_PACKAGE]) AC_SUBST([DOXYGEN_VERSION_STRING]) + AC_SUBST([DOXYGEN_DIR]) AC_SUBST([DOXYGEN_INCLUDE_ALIASES]) AC_SUBST([DOXYGEN_PROJECT_LOGO]) AC_SUBST([DOXYGEN_PROJECT_BRIEF]) @@ -1237,6 +1238,7 @@ if test "X$HDF5_DOXYGEN" = "Xyes"; then # SRCDIR Environment variables used inside doxygen macro for the source location: DOXYGEN_PACKAGE=${PACKAGE_NAME} DOXYGEN_VERSION_STRING=${PACKAGE_VERSION} + DOXYGEN_DIR='$(SRCDIR)/doxygen' DOXYGEN_INCLUDE_ALIASES='$(SRCDIR)/doxygen/aliases' DOXYGEN_PROJECT_LOGO='$(SRCDIR)/doxygen/img/HDFG-logo.png' DOXYGEN_PROJECT_BRIEF='' @@ -1249,14 +1251,14 @@ if test "X$HDF5_DOXYGEN" = "Xyes"; then DOXYGEN_HTML_HEADER='$(SRCDIR)/doxygen/hdf5_header.html' DOXYGEN_HTML_FOOTER='$(SRCDIR)/doxygen/hdf5_footer.html' DOXYGEN_HTML_EXTRA_STYLESHEET='$(SRCDIR)/doxygen/hdf5doxy.css' - DOXYGEN_HTML_EXTRA_FILES='$(SRCDIR)/doxygen/hdf5_navtree_hacks.js $(SRCDIR)/doxygen/img/FF-IH_FileGroup.gif $(SRCDIR)/doxygen/img/FF-IH_FileObject.gif $(SRCDIR)/doxygen/img/FileFormatSpecChunkDiagram.jpg $(SRCDIR)/doxygen/img/ftv2node.png $(SRCDIR)/doxygen/img/ftv2pnode.png $(SRCDIR)/doxygen/img/HDFG-logo.png $(SRCDIR)/doxygen/img/IOFlow2.gif $(SRCDIR)/doxygen/img/IOFlow3.gif $(SRCDIR)/doxygen/img/IOFlow.gif $(SRCDIR)/doxygen/img/PaletteExample1.gif $(SRCDIR)/doxygen/img/Palettes.fm.anc.gif' + DOXYGEN_HTML_EXTRA_FILES='$(SRCDIR)/doxygen/hdf5_navtree_hacks.js' DOXYGEN_TAG_FILE=hdf5.tag DOXYGEN_SERVER_BASED_SEARCH=NO DOXYGEN_EXTERNAL_SEARCH=NO DOXYGEN_SEARCHENGINE_URL= DOXYGEN_STRIP_FROM_PATH='$(SRCDIR)' DOXYGEN_STRIP_FROM_INC_PATH='$(SRCDIR)' - DOXYGEN_PREDEFINED='H5_HAVE_DIRECT H5_HAVE_LIBHDFS H5_HAVE_MAP_API H5_HAVE_PARALLEL H5_HAVE_ROS3_VFD' + DOXYGEN_PREDEFINED='H5_HAVE_DIRECT H5_HAVE_LIBHDFS H5_HAVE_MAP_API H5_HAVE_PARALLEL H5_HAVE_ROS3_VFD H5_DOXYGEN_FORTRAN' DX_INIT_DOXYGEN([HDF5], [./doxygen/Doxyfile], [hdf5lib_docs]) fi diff --git a/doxygen/CMakeLists.txt b/doxygen/CMakeLists.txt index c1a2071..86d34a3 100644 --- a/doxygen/CMakeLists.txt +++ b/doxygen/CMakeLists.txt @@ -7,11 +7,12 @@ project (HDF5_DOXYGEN C) if (DOXYGEN_FOUND) set (DOXYGEN_PACKAGE ${HDF5_PACKAGE_NAME}) set (DOXYGEN_VERSION_STRING ${HDF5_PACKAGE_VERSION_STRING}) + set (DOXYGEN_DIR ${HDF5_DOXYGEN_DIR}) set (DOXYGEN_INCLUDE_ALIASES_PATH ${HDF5_DOXYGEN_DIR}) set (DOXYGEN_INCLUDE_ALIASES aliases) set (DOXYGEN_VERBATIM_VARS DOXYGEN_INCLUDE_ALIASES) set (DOXYGEN_PROJECT_LOGO ${HDF5_DOXYGEN_DIR}/img/HDFG-logo.png) - set (DOXYGEN_PROJECT_BRIEF "C-API Reference") + set (DOXYGEN_PROJECT_BRIEF "API Reference") set (DOXYGEN_INPUT_DIRECTORY "${HDF5_SOURCE_DIR} ${HDF5_DOXYGEN_DIR}/dox ${HDF5_GENERATED_SOURCE_DIR}") set (DOXYGEN_OPTIMIZE_OUTPUT_FOR_C YES) set (DOXYGEN_MACRO_EXPANSION YES) @@ -28,7 +29,7 @@ if (DOXYGEN_FOUND) set (DOXYGEN_SEARCHENGINE_URL) set (DOXYGEN_STRIP_FROM_PATH ${HDF5_SOURCE_DIR}) set (DOXYGEN_STRIP_FROM_INC_PATH ${HDF5_SOURCE_DIR}) - set (DOXYGEN_PREDEFINED "H5_HAVE_DIRECT H5_HAVE_LIBHDFS H5_HAVE_MAP_API H5_HAVE_PARALLEL H5_HAVE_ROS3_VFD H5_HAVE_SUBFILING_VFD H5_HAVE_IOC_VFD") + set (DOXYGEN_PREDEFINED "H5_HAVE_DIRECT H5_HAVE_LIBHDFS H5_HAVE_MAP_API H5_HAVE_PARALLEL H5_HAVE_ROS3_VFD H5_DOXYGEN_FORTRAN H5_HAVE_SUBFILING_VFD H5_HAVE_IOC_VFD") # This configure and individual custom targets work together # Replace variables inside @@ with the current values diff --git a/doxygen/Doxyfile.in b/doxygen/Doxyfile.in index 7657fa5..08f5545 100644 --- a/doxygen/Doxyfile.in +++ b/doxygen/Doxyfile.in @@ -280,13 +280,13 @@ OPTIMIZE_OUTPUT_FOR_C = YES # qualified scopes will look different, etc. # The default value is: NO. -OPTIMIZE_OUTPUT_JAVA = NO +OPTIMIZE_OUTPUT_JAVA = YES # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources. Doxygen will then generate output that is tailored for Fortran. # The default value is: NO. -OPTIMIZE_FOR_FORTRAN = NO +OPTIMIZE_FOR_FORTRAN = YES # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for VHDL. @@ -875,7 +875,11 @@ FILE_PATTERNS = H5*public.h \ H5VLconnector.h \ H5VLconnector_passthru.h \ H5VLnative.h \ + H5Zdevelop.h \ H5version.h \ + H5*.java \ + HDF*.java \ + *.F90 \ *.dox # The RECURSIVE tag can be used to specify whether or not subdirectories should @@ -944,7 +948,7 @@ EXAMPLE_RECURSIVE = NO # that contain images that are to be included in the documentation (see the # \image command). -IMAGE_PATH = @HDF5_DOXYGEN_DIR@/img +IMAGE_PATH = @DOXYGEN_DIR@/img # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program diff --git a/doxygen/aliases b/doxygen/aliases index 6730be5..5ee60d5 100644 --- a/doxygen/aliases +++ b/doxygen/aliases @@ -379,4 +379,4 @@ ALIASES += obj_info_fields="
Field Name | -Description | -
---|---|
Bit Offset |
-
- The bit offset of the first significant bit of the fixed-point - value within the datatype. The bit offset specifies the number - of bits “to the right of” the value (which are set to the - lo_pad bit value). - - |
-
Bit Precision |
-
- The number of bits of precision of the fixed-point value - within the datatype. This value, combined with the datatype - element’s size and the Bit Offset field specifies the number - of bits “to the left of” the value (which are set to the - hi_pad bit value). - - |
-
+ | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
+ | (Items marked with an ‘L’ in the above table are + of the size specified in “Size of Lengths” field in the + superblock.) | +
Field Name | +Description | +
---|
Bits | -Meaning | -||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0, 6 |
- Byte Order. These two non-contiguous bits specify the - “endianness” of the bytes in the datatype element. -
|
- ||||||||||||||||||
1, 2, 3 |
- Padding type. Bit 1 is the low bits pad type, bit 2 - is the high bits pad type, and bit 3 is the internal bits - pad type. If a datum has unused bits at either end or between - the sign bit, exponent, or mantissa, then the value of bit - 1, 2, or 3 is copied to those locations. |
- ||||||||||||||||||
4-5 |
- Mantissa Normalization. This 2-bit bit field specifies - how the most significant bit of the mantissa is managed. + | ||||||||||||||||||
Version & Type |
+
+ This is a bit field with the following definition:
|
7
Reserved (zero).
Address
This field is the address of the object in the file.
+8-15
Sign Location. This is the bit position of the sign - bit. Bits are numbered with the least significant bit zero.
Length
This field is the length of the object in the file.
16-23
Reserved (zero).
Byte | -Byte | -Byte | -Byte | -
---|---|---|---|
Bit Offset | -Bit Precision | -||
Exponent Location | -Exponent Size | -Mantissa Location | -Mantissa Size | -
Exponent Bias | -
Field Name | -Description | -||
---|---|---|---|
Bit Offset |
-
- The bit offset of the first significant bit of the floating-point - value within the datatype. The bit offset specifies the number - of bits “to the right of” the value. - - |
- ||
Bit Precision |
-
- The number of bits of precision of the floating-point value - within the datatype. - - |
- ||
Exponent Location |
-
- The bit position of the exponent field. Bits are numbered with - the least significant bit number zero. - - |
- ||
Exponent Size |
-
- The size of the exponent field in bits. - - |
- ||
Mantissa Location |
-
- The bit position of the mantissa field. Bits are numbered with - the least significant bit number zero. - - |
- ||
Mantissa Size |
-
- The size of the mantissa field in bits. - - |
- ||
Exponent Bias |
-
- The bias of the exponent field. - - |
- ||
Address O + |
+
Class specific information for Time (Class 2):
- - -Bits | -Meaning | -
---|---|
0 |
- Byte Order. If zero, byte order is little-endian; - otherwise, byte order is big endian. |
-
1-23 |
- Reserved (zero). |
-
Byte | -Byte | -
---|---|
Bit Precision | -
Field Name | -Description | -
---|---|
Bit Precision |
-
- The number of bits of precision of the time value. - - |
-
+ | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
+ | (Items marked with an ‘L’ in the above table are + of the size specified in “Size of Lengths” field in the + superblock.) | +
Field Name | +Description | +
---|
Bits | -Meaning | -||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0-3 |
- Padding type. This four-bit value determines the - type of padding to use for the string. The values are: - -
|
- ||||||||||
4-7 |
- Character Set. The character set used to - encode the string. -
|
- ||||||||||
8-23 |
- Reserved (zero). |
-
There are no properties defined for the string class. -
- - -Class specific information for bit fields (Class 4):
- -Bits | -Meaning | -
---|---|
0 |
- Byte Order. If zero, byte order is little-endian; - otherwise, byte order is big endian. |
-
1, 2 |
- Padding type. Bit 1 is the lo_pad type and bit 2 - is the hi_pad type. If a datum has unused bits at either - end, then the lo_pad or hi_pad bit is copied to those - locations. |
-
3-23 |
- Reserved (zero). |
-
Version & Type
This is a bit field with the following definition:
+Bit | +Description | +
---|
Byte | -Byte | -Byte | -Byte | -
---|---|---|---|
Bit Offset | -Bit Precision | -
6-7
4-5
1
.
+ 0-3
Field Name | -Description | -
---|---|
Bit Offset |
-
- The bit offset of the first significant bit of the bit field - within the datatype. The bit offset specifies the number - of bits “to the right of” the value. - - |
-
Bit Precision |
-
- The number of bits of precision of the bit field - within the datatype. - - |
-
Address
This field is the address of the filtered object in + the file.
Class specific information for Opaque (Class 5):
- -Bits | -Meaning | -
---|---|
0-7 |
- Length of ASCII tag in bytes. |
-
8-23 |
- Reserved (zero). |
-
Length
This field is the length of the filtered object in + the file.
Byte | -Byte | -Byte | -Byte | -
---|---|---|---|
ASCII Tag - |
-
Filter Mask
This field is the I/O pipeline filter mask for the + filtered object in the file.
Field Name | -Description | -
---|---|
ASCII Tag |
-
- This NUL-terminated string provides a description for the - opaque type. It is NUL-padded to a multiple of 8 bytes. - - |
-
Filtered Size
This field is the size of the de-filtered object in + the file.
Class specific information for Compound (Class 6):
- -Bits | -Meaning | -
---|---|
0-15 |
- Number of Members. This field contains the number - of members defined for the compound datatype. The member - definitions are listed in the Properties field of the data - type message. |
-
16-23 |
- Reserved (zero). |
-
byte | +byte | +byte | +byte | +
---|---|---|---|
Version & Type | +This space inserted + only to align table nicely | +||
Offset (variable size) | +|||
Length (variable size) | +
Field Name | +Description | +
---|
Version & Type |
+ This is a bit field with the following definition: +
|
+ ||||||||||||
Name |
- |||||||||||||
Offset |
+ + This field is the offset of the object in the heap. This + field’s size is the minimum number of bytes necessary to + encode the Maximum Heap Size value (from the Fractal + Heap Header). For example, if the value of the Maximum + Heap Size is less than 256 bytes, this field is 1 byte in length, + a Maximum Heap Size of 256-65535 bytes uses a 2 byte + length, and so on. + |
+ ||||||||||||
Byte Offset of Member | -|||||||||||||
Length |
+ + This field is the length of the object in the heap. It is + determined by taking the minimum value of Maximum Direct + Block Size and Maximum Size of Managed Objects in the Fractal + Heap Header. Again, the minimum number of bytes needed to encode + that value is used for the size of this field. + |
+
Free-space managers are used to describe space within a heap or + the entire HDF5 file that is not currently used for that heap or file. +
-+ The free-space manager header contains metadata information + about the space being tracked, along with the address of the list of free + space sections which actually describes the free space. The header + records information about free-space sections being tracked, creation + parameters for handling free-space sections of a client, and section + information used to locate the collection of free-space sections. +
-+ The free-space section list stores a collection of free-space + sections that is specific to each client of the free-space + manager. For example, the fractal heap is a client of the free space + manager and uses it to track unused space within the heap. There are 4 + types of section records for the fractal heap, each of which has its + own format, listed below. +
-Dimension #3 Size (required) | -|||
byte | +byte | +byte | +byte | +
---|---|---|---|
Dimension #4 Size (required) | -|||
Signature | +|||
Member Type Message |
- |||
Version | +Client ID | +This space inserted + only to align table nicely | +
Field Name | -Description | -||
---|---|---|---|
Name |
-
- This NUL-terminated string provides a description for the - opaque type. It is NUL-padded to a multiple of 8 bytes. - - |
- ||
Byte Offset of Member |
-
- This is the byte offset of the member within the datatype. - - |
- ||
Dimensionality |
-
- If set to zero, this field indicates a scalar member. If set - to a value greater than zero, this field indicates that the - member is an array of values. For array members, the size of - the array is indicated by the ‘Size of Dimension n’ field in - this message. - - |
- ||
Dimension Permutation |
-
- This field was intended to allow an array field to have - its dimensions permuted, but this was never implemented. - This field should always be set to zero. - - |
- ||
Dimension #n Size |
-
- This field is the size of a dimension of the array field as - stored in the file. The first dimension stored in the list of - dimensions is the slowest changing dimension and the last - dimension stored is the fastest changing dimension. - - |
- ||
Member Type Message |
-
- This field is a datatype message describing the datatype of - the member. - - |
- ||
Total Number of SectionsL + |
+
Byte | -Byte | -Byte | -Byte | -
---|---|---|---|
Name |
- |||
Byte Offset of Member | -|||
Member Type Message |
- |||
Number of Un-Serialized SectionsL + |
+
Field Name | -Description | -||
---|---|---|---|
Name |
-
- This NUL-terminated string provides a description for the - opaque type. It is NUL-padded to a multiple of 8 bytes. - - |
- ||
Byte Offset of Member |
-
- This is the byte offset of the member within the datatype. - - |
- ||
Member Type Message |
-
- This field is a datatype message describing the datatype of - the member. - - |
- ||
Shrink Percent | +Expand Percent | +
Byte | -Byte | -Byte | -Byte | -
---|---|---|---|
Name |
- |||
Byte Offset of Member (variable size) | -|||
Member Type Message |
- |||
Address of Serialized Section ListO + |
+
Field Name | -Description | -||
---|---|---|---|
Name |
- This NUL-terminated string provides a description for the - opaque type. It is not NUL-padded to a multiple of 8 - bytes. |
- ||
Byte Offset of Member |
- This is the byte offset of the member within the datatype. - The field size is the minimum number of bytes necessary, - based on the size of the datatype element. For example, a - datatype element size of less than 256 bytes uses a 1 byte - length, a datatype element size of 256-65535 bytes uses a - 2 byte length, and so on. |
- ||
Member Type Message |
- This field is a datatype message describing the datatype of - the member. |
- ||
Allocated Size of Serialized Section ListL + |
+
+ | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
+ | (Items marked with an ‘L’ in the above table are + of the size specified in “Size of Lengths” field in the + superblock.) | +
Class specific information for Reference (Class 7):
- -Bits | -Meaning | -||||||||
---|---|---|---|---|---|---|---|---|---|
0-3 |
- Type. This four-bit value contains the type of reference - described. The values defined are: - -
|
- ||||||||
4-23 |
- Reserved (zero). |
-
There are no properties defined for the reference class. -
+Field Name | +Description | +||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Signature |
+
+
+ The ASCII character string “
+ |
+
Bits | -Meaning | -
---|---|
0-15 |
- Number of Members. The number of name/value - pairs defined for the enumeration type. |
-
16-23 |
- Reserved (zero). |
-
Version
This is the version number for the Free-space Manager Header + and this document describes version 0.
+Client ID |
+
+ This is the client ID for identifying the user of this + free-space manager: +
| ||||||||||||
Base Type |
- |||||||||||||
Names |
- |||||||||||||
Total Space Tracked |
+
+ This is the total amount of free space being tracked, in + bytes. + |
+ ||||||||||||
Values |
+ |||||||||||||
Total Number of Sections |
+
+ This is the total number of free-space sections being + tracked. + |
Number of Serialized Sections
This is the number of serialized free-space sections being + tracked.
+Number of Un-Serialized Sections
This is the number of un-serialized free-space sections being + managed. Un-serialized sections are created by the free-space + client when the list of sections is read in.
+Field Name | -Description | -
---|---|
Base Type |
-
- Each enumeration type is based on some parent type, usually an - integer. The information for that parent type is described - recursively by this field. - - |
-
Names |
-
- The name for each name/value pair. Each name is stored as a null - terminated ASCII string in a multiple of eight bytes. The names - are in no particular order. - - |
-
Values |
-
- The list of values in the same order as the names. The values - are packed (no inter-value padding) and the size of each value - is determined by the parent type. - - |
-
Number of Section Classes |
+
+ This is the number of section classes handled by this free + space manager for the free-space client. + |
+
Shrink Percent
This is the percent of current size to shrink the allocated + serialized free-space section list.
+Expand Percent |
+
+ This is the percent of current size to expand the allocated + serialized free-space section list. + |
+ ||
Byte | -Byte | -Byte | -Byte | -
---|---|---|---|
Size of Address Space |
+
+ + This is the size of the address space that free-space sections are + within. This is stored as the log2 of the actual value + (in other words, the number of bits required to store values within + that address space). + + |
+ ||
Base Type |
- |||
Maximum Section Size |
+
+ This is the maximum size of a section to be tracked. + |
+ ||
Names |
- |||
Address of Serialized Section List |
+
+ This is the address where the serialized free-space section + list is stored. + |
+ ||
Values |
+ |||
Size of Serialized Section List Used |
+
+ + This is the size of the serialized free-space section list used (in + bytes). This value must be less than or equal to the allocated + size of serialized section list, below. + + |
Allocated Size of Serialized Section List
This is the size of serialized free-space section list + actually allocated (in bytes).
+Field Name | -Description | -
---|---|
Base Type |
-
- Each enumeration type is based on some parent type, usually an - integer. The information for that parent type is described - recursively by this field. - - |
-
Names |
-
- The name for each name/value pair. Each name is stored as a null - terminated ASCII string, not padded to a multiple of - eight bytes. The names are in no particular order. - - |
-
Values |
-
- The list of values in the same order as the names. The values - are packed (no inter-value padding) and the size of each value - is determined by the parent type. - - |
-
Checksum |
+
+ This is the checksum for the free-space manager header. + |
+
+ The free-space sections being managed are stored in a free-space + section list, described below. The sections in the free-space section + list are stored in the following way: a count of the number of sections + describing a particular size of free space and the size of the + free-space described (in bytes), followed by a list of section + description records; then another section count and size, followed by + the list of section descriptions for that size; and so on. +
-Class specific information for Variable-Length (Class 9):
- -Bits | -Meaning | -||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0-3 |
- Type. This four-bit value contains the type of - variable-length datatype described. The values defined are: - -
|
- ||||||||||
4-7 |
- Padding type. (variable-length string only) - This four-bit value determines the type of padding - used for variable-length strings. The values are the same - as for the string padding type, as follows: -
This value is set to zero for variable-length sequences. - - |
- ||||||||||
8-11 |
- Character Set. (variable-length string only) - This four-bit value specifies the character set - to be used for encoding the string: -
This value is set to zero for variable-length sequences. - - |
- ||||||||||
12-23 |
- Reserved (zero). |
-
byte | +byte | +byte | +byte | +||||
---|---|---|---|---|---|---|---|
Byte | -Byte | -Byte | -Byte | +Signature | |||
Base Type |
+ Version | +This space inserted + only to align table nicely |
Field Name | -Description | -||
---|---|---|---|
Base Type |
-
- Each variable-length type is based on some parent type. The - information for that parent type is described recursively by - this field. - - |
- ||
Number of Section Records in Set #0 (variable + size) | +
Class specific information for Array (Class 10):
+There are no bit fields defined for the array class. -
+Note that the dimension information defined in the property for this - datatype class is independent of dataspace information for a dataset. - The dimension information here describes the dimensionality of the - information within a data element (or a component of an element, if the - array datatype is nested within another datatype) and the dataspace for a - dataset describes the size and locations of the elements in a dataset. -
+Record Set #0 Section Record #K-1 Data (variable + size) | +|||||||
Byte | -Byte | -Byte | -Byte | +Number of Section Records in Set #1 (variable + size) | |||
---|---|---|---|---|---|---|---|
Dimensionality | -Reserved (zero) | -||||||
Size of Free-space Section Described in Record + Set #1 (variable size) + | +|||||||
Dimension #1 Size | -|||||||
. . . |
- |||||||
Dimension #n Size | -|||||||
Record Set #1 Section Record #0 Offset(variable + size) | +|||||||
Permutation Index #1 | -|||||||
. . . |
- |||||||
Permutation Index #n | -|||||||
Record Set #1 Section Record #0 Type | +This space inserted + only to align table nicely | +||||||
Base Type |
+ Record Set #1 Section Record #0 Data (variable + size) |
Field Name | -Description | -||
---|---|---|---|
Dimensionality |
-
- This value is the number of dimensions that the array has. - - |
- ||
Dimension #n Size |
-
- This value is the size of the dimension of the array - as stored in the file. The first dimension stored in - the list of dimensions is the slowest changing dimension - and the last dimension stored is the fastest changing - dimension. - - |
- ||
Permutation Index #n |
-
- This value is the index permutation used to map - each dimension from the canonical representation to an - alternate axis for each dimension. Currently, dimension - permutations are not supported, and these indices should - be set to the index position minus one. In other words, - the first dimension should be set to 0, the second dimension - should be set to 1, and so on. - - |
- ||
Base Type |
-
- Each array type is based on some parent type. The - information for that parent type is described recursively by - this field. - - |
- ||
Record Set #1 Section Record #K-1 Offset(variable + size) | +
Record Set #1 Section Record #K-1 Data (variable + size) | +|||||||
Byte | -Byte | -Byte | -Byte | +... | |||
---|---|---|---|---|---|---|---|
Dimensionality | -This space inserted only to align table nicely | -||||||
... | +|||||||
Dimension #1 Size | -|||||||
. . . |
- |||||||
Dimension #n Size | -|||||||
Number of Section Records in Set #N-1 (variable + size) | +|||||||
Base Type |
+ Size of Free-space Section Described in Record + Set #N-1 (variable size) + |
Field Name | -Description | -||
---|---|---|---|
Dimensionality |
-
- This value is the number of dimensions that the array has. - - |
- ||
Dimension #n Size |
-
- This value is the size of the dimension of the array - as stored in the file. The first dimension stored in - the list of dimensions is the slowest changing dimension - and the last dimension stored is the fastest changing - dimension. - - |
- ||
Base Type |
-
- Each array type is based on some parent type. The - information for that parent type is described recursively by - this field. - - |
- ||
Record Set #N-1 Section Record #0 Type | +This space inserted + only to align table nicely | +
Header Message Name: Fill Value - (old) | |
Header Message Type: 0x0004 | |
Length: Varies | |
Status: Optional; may not be - repeated. | |
Description: | -The fill value message stores a single data value which - is returned to the application when an uninitialized data element - is read from a dataset. The fill value is interpreted with the - same datatype as the dataset. If no fill value message is present - then a fill value of all zero bytes is assumed. -This fill value message is deprecated in favor of the - “new” fill value message (Message Type 0x0005) and - is only written to the file for forward compatibility with - versions of the HDF5 Library before the 1.6.0 version. - Additionally, it only appears for datasets with a user-defined - fill value (as opposed to the library default fill value or an - explicitly set “undefined” fill value). - |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Size | -|||
Fill Value (optional, variable size) |
-
Field Name | -Description | -
---|---|
Size |
-
- This is the size of the Fill Value field in bytes. - - |
-
Fill Value |
-
- The fill value. The bytes of the fill value are interpreted - using the same datatype as for the dataset. - - |
-
+ | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
Field Name | +Description | +
---|
Header Message Name: Fill - Value | |
Header Message Type: 0x0005 | |
Length: Varies | |
Status: Required for dataset objects; - may not be repeated. | |
Description: | -The fill value message stores a single data value which is - returned to the application when an uninitialized data element - is read from a dataset. The fill value is interpreted with the - same datatype as the dataset. |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -Space Allocation Time | -Fill Value Write Time | -Fill Value Defined | -
Size (optional) | -|||
Fill Value (optional, variable size) |
-
Signature
+ The ASCII character string “
+ FSSE
+ ” is used to indicate the beginning of the Free-space Section
+ Information. This gives file consistency checking utilities a
+ better chance of reconstructing a damaged file.
+
Field Name | -Description | -||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
-
- The version number information is used for changes in the - format of the fill value message and is described here: -
|
- ||||||||||||
Free-space Manager Header Address |
+
+ + This is the address of the Free-space Manager Header. This + field is principally used for file integrity checking. + + |
+ ||||||||||||
Space Allocation Time |
-
- When the storage space for the dataset’s raw data will be - allocated. The allowed values are: -
+ The number of sets of free-space section records is determined by + the size of serialized section list in the free-space + manager header. + + |
+ ||||||||||||
Section Size for Record Set #N |
+
+ + This is the size (in bytes) of the free-space section described for + all the section records in set #N. + - |
- ||||||||||||
Fill Value Write Time |
-
- At the time that storage space for the dataset’s raw data is - allocated, this value indicates whether the fill value should - be written to the raw data storage elements. The allowed values - are: -
|
- ||||||||||||
Fill Value Defined |
-
- This value indicates if a fill value is defined for this - dataset. If this value is 0, the fill value is undefined. - If this value is 1, a fill value is defined for this dataset. - For version 2 or later of the fill value message, this value - controls the presence of the Size and Fill Value fields. - - |
- ||||||||||||
Size |
-
- This is the size of the Fill Value field in bytes. This field - is not present if the Version field is greater than 1, - and the Fill Value Defined field is set to 0. - - |
- ||||||||||||
Fill Value |
-
- The fill value. The bytes of the fill value are interpreted - using the same datatype as for the dataset. This field is - not present if the Version field is greater than 1, - and the Fill Value Defined field is set to 0. - - |
-
Record Set #N Section #K Offset
This is the offset (in bytes) of the free-space section + within the client for the free-space manager.
-byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -Flags | -This space inserted only to align table nicely | -|
Size (optional) | -|||
Fill Value (optional, variable size) |
-
+ The length of this field is the minimum number of bytes needed to + store the size of address space (from the free-space + manager header). +
+Field Name | -Description | -||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
-
- The version number information is used for changes in the - format of the fill value message and is described here: + | ||||||||||||||||
Record Set #N Section #K Type |
+
+ + This is the type of the section record, used to decode the record + set #N section #K data information. The defined record type for file + client is: + +
|
+ The defined record types for a fractal heap client are: -
Flags
When the storage space for the dataset’s raw data will be - allocated. The allowed values are: +
Bits | -Description | +Type | +Description |
---|---|---|---|
0-1 |
- Space Allocation Time, with the same - values as versions 1 and 2 of the message. - | +0 |
+ Fractal heap “single” section |
2-3 |
- Fill Value Write Time, with the same - values as versions 1 and 2 of the message. - | +1 |
+ Fractal heap “first row” section |
4 |
- Fill Value Undefined, indicating that the fill - value has been marked as “undefined” for this dataset. - Bits 4 and 5 cannot both be set. - | +2 |
+ Fractal heap “normal row” section |
5 |
- Fill Value Defined, with the same values as - versions 1 and 2 of the message. - Bits 4 and 5 cannot both be set. - | +3 |
+ Fractal heap “indirect” section |
6-7 |
- Reserved (zero). - | +4+ |
+ Reserved. |
Size
This is the size of the Fill Value field in bytes. This field - is not present if the Version field is greater than 1, - and the Fill Value Defined flag is set to 0. -
-Record Set #N Section #K Data
This is the section-type specific information for each record + in the record set, described below.
+Fill Value
The fill value. The bytes of the fill value are interpreted - using the same datatype as for the dataset. This field is - not present if the Version field is greater than 1, - and the Fill Value Defined flag is set to 0. -
-Checksum
+ This is the checksum for the Free-space Section List. +
+The section-type specific data for each free-space section record + is described below:
- -Header Message Name: Link | |
Header Message Type: 0x0006 | |
Length: Varies | |
Status: Optional; may be - repeated. | |
Description: | -This message encodes the information for a link in a - group’s object header, when the group is storing its links - “compactly”, or in the group’s fractal heap, - when the group is storing its links “densely”. -A group is storing its links compactly when the fractal heap - address in the Link Info - Message is set to the “undefined address” - value. |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -Flags | -Link type (optional) | -This space inserted only to align table nicely | -
Creation Order (8 bytes, optional) |
- |||
Link Name Character Set (optional) | -Length of Link Name (variable size) | -This space inserted only to align table nicely | -|
Link Name (variable size) | -|||
Link Information (variable size) |
-
Field Name | -Description | -||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
- The version number for this message. This document describes version 1. - |
- ||||||||||||||||||||||
Flags |
- This field contains information about the link and controls - the presence of other fields below. -
|
- ||||||||||||||||||||||
Link type |
- This is the link class type and can be one of the following - values: -
This field is present if bit 3 of Flags is set. - |
- ||||||||||||||||||||||
Creation Order |
- This 64-bit value is an index of the link’s creation time within - the group. Values start at 0 when the group is created an increment - by one for each link added to the group. Removing a link from a - group does not change existing links’ creation order field. - -This field is present if bit 2 of Flags is set. - |
- ||||||||||||||||||||||
Link Name Character Set |
- This is the character set for encoding the link’s name: -
This field is present if bit 4 of Flags is set. - |
- ||||||||||||||||||||||
Length of link name |
- This is the length of the link’s name. The size of this field - depends on bits 0 and 1 of Flags. - |
- ||||||||||||||||||||||
Link name |
- This is the name of the link, non-NULL terminated. - |
- ||||||||||||||||||||||
Link information |
- The format of this field depends on the link type. -For hard links, the field is formatted as follows: - -
- For soft links, the field is formatted as follows: - -
- For external links, the field is formatted as follows: - -
- For user-defined links, the field is formatted as follows: - -
|
+ ||||||||||||||||||||||
No additional record data stored |
Header Message Name: External - Data Files | |
Header Message Type: 0x0007 | |
Length: Varies | |
Status: Optional; may not be - repeated. | |
Description: | -The external data storage message indicates that the data - for an object is stored outside the HDF5 file. The filename of - the object is stored as a Universal Resource Location (URL) of - the actual filename containing the data. An external file list - record also contains the byte offset of the start of the data - within the file and the amount of space reserved in the file - for that data. |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -Reserved (zero) | -||
Allocated Slots | -Used Slots | -||
Heap AddressO |
- |||
Slot Definitions... |
-
- | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - |
Field Name | -Description | -||||||
---|---|---|---|---|---|---|---|
Version |
-
- The version number information is used for changes in the format of - External Data Storage Message and is described here: -
|
- ||||||
Allocated Slots |
-
- The total number of slots allocated in the message. Its value must be at least as - large as the value contained in the Used Slots field. (The current library simply - uses the number of Used Slots for this message) - |
- ||||||
Used Slots |
-
- The number of initial slots which contains valid information. - |
- ||||||
Heap Address |
-
- This is the address of a local heap which contains the names for the external - files (The local heap information can be found in Disk Format Level 1D in this - document). The name at offset zero in the heap is always the empty string. - |
- ||||||
Slot Definitions |
-
- The slot definitions are stored in order according to the array addresses they - represent. - |
-
byte | -byte | -byte | -byte | -
---|---|---|---|
Name Offset in Local HeapL |
- |||
Offset in External Data FileL |
- |||
Data Size in External FileL |
-
- | - (Items marked with an ‘L’ in the above table are of the size - specified in “Size of Lengths” field in the superblock.) - |
Field Name | -Description | -
---|---|
Name Offset in Local Heap |
-
- The byte offset within the local name heap for the name
- of the file. File names are stored as a URL which has a
- protocol name, a host name, a port number, and a file
- name:
- |
-
Offset in External Data File |
-
- This is the byte offset to the start of the data in the - specified file. For files that contain data for a single - dataset this will usually be zero. - |
-
Data Size in External File |
-
- This is the total number of bytes reserved in the - specified file for raw data storage. For a file that - contains exactly one complete dataset which is not - extendable, the size will usually be the exact size of the - dataset. However, by making the size larger one allows - HDF5 to extend the dataset. The size can be set to a value - larger than the entire file since HDF5 will read zeroes - past the end of the file without failing. - |
-
Header Message Name: Data Storage - - Layout | |
Header Message Type: 0x0008 | |
Length: Varies | |
Status: Required for datasets; may not - be repeated. | |
Description: | -Data layout describes how the elements of a multi-dimensional
- array are stored in the HDF5 file. Three types of data layout
- are supported:
-
|
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -Dimensionality | -Layout Class | -Reserved (zero) | -
Reserved (zero) | -|||
Data AddressO (optional) |
- |||
Dimension 0 Size | -|||
Dimension 1 Size | -|||
... | -|||
Dimension #n Size | -|||
Dataset Element Size (optional) | -|||
Compact Data Size (optional) | -|||
Compact Data... (variable size, optional) |
-
- | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - |
Field Name | +Description | +
---|
Field Name | -Description | -||||||||
---|---|---|---|---|---|---|---|---|---|
Version |
-
- The version number information is used for changes in the format of the data - layout message and is described here: -
|
- ||||||||
Dimensionality |
- An array has a fixed dimensionality. This field - specifies the number of dimension size fields later in the - message. The value stored for chunked storage is 1 greater than - the number of dimensions in the dataset’s dataspace. - For example, 2 is stored for a 1 dimensional dataset. - - |
- ||||||||
Layout Class |
- The layout class specifies the type of storage for the data - and how the other fields of the layout message are to be - interpreted. - -
|
- ||||||||
Data Address |
- For contiguous storage, this is the address of the raw - data in the file. For chunked storage this is the address - of the v1 B-tree that is used to look up the addresses of the - chunks. This field is not present for compact storage. - If the version for this message is greater than 1, the address - may have the “undefined address” value, to indicate that - storage has not yet been allocated for this array. - |
- ||||||||
Dimension #n Size |
- For contiguous and compact storage the dimensions define - the entire size of the array while for chunked storage they define - the size of a single chunk. In all cases, they are in units of - array elements (not bytes). The first dimension stored in the list - of dimensions is the slowest changing dimension and the last - dimension stored is the fastest changing dimension. - - |
- ||||||||
Dataset Element Size |
- The size of a dataset element, in bytes. This field is only - present for chunked storage. - - |
- ||||||||
Compact Data Size |
- This field is only present for compact data storage. - It contains the size of the raw data for the dataset array, in - bytes. - |
- ||||||||
Fractal Heap Block Offset |
+
+ The offset of the indirect block in the fractal heap’s + address space containing the empty blocks. ++ The number of bytes used to encode this field is the minimum number + of bytes needed to encode values for the Maximum Heap Size + (in the fractal heap’s header). + + |
+ ||||||||
Compact Data |
- This field is only present for compact data storage. - It contains the raw data for the dataset array. - |
-
Block Start Row
This is the row that the empty blocks start in.
+Version 3 of this message re-structured the format into specific - properties that are required for each layout class.
- - -byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -Layout Class | -This space inserted only to align table nicely | -|
Properties (variable size) |
-
Block Start Column
This is the column that the empty blocks start in.
+Field Name | -Description | -||||||||
---|---|---|---|---|---|---|---|---|---|
Version |
-
- The version number information is used for changes in the format of layout message - and is described here: -
|
- ||||||||
Layout Class |
- The layout class specifies the type of storage for the data - and how the other fields of the layout message are to be - interpreted. -
|
- ||||||||
Properties |
- This variable-sized field encodes information specific to each - layout class and is described below. If there is no property - information specified for a layout class, the size of this field - is zero bytes. |
-
Number of Blocks
This is the number of empty blocks covered by the section.
+Class-specific information for compact layout (Class 0): (Note: The dimensionality information - is in the Dataspace message)
- - -byte | -byte | -byte | -byte | -
---|---|---|---|
Size | -This space inserted only to align table nicely | -||
Raw Data... (variable size) |
-
+ The shared object header message table is used to locate + object header messages that are shared between two or more object + headers in the file. Shared object header messages are stored and + indexed in the file in one of two ways: indexed sequentially in a shared + header message list or indexed with a v2 B-tree. The shared messages + themselves are either stored in a fractal heap (when two or more + objects share the message), or remain in an object’s header (when + only one object uses the message currently, but the message can be + shared in the future). +
-Field Name | -Description | -
---|---|
Size |
- This field contains the size of the raw data for the dataset - array, in bytes. - - |
-
Raw Data |
- This field contains the raw data for the dataset array. |
-
+ The shared object header message table contains a list of + shared message index headers. Each index header records information + about the version of the index format, the index storage type, flags + for the message types indexed, the number of messages in the index, the + address where the index resides, and the fractal heap address if shared + messages are stored there. +
+ ++ Each index can be either a list or a v2 B-tree and may transition + between those two forms as the number of messages in the index varies. + Each shared message record contains information used to locate the + shared message from either a fractal heap or an object header. The + types of messages that can be shared are: Dataspace, Datatype, + Fill Value, Filter Pipeline and Attribute. +
++ The shared object header message table is pointed to from a shared message table message in the + superblock extension for a file. This message stores the version of the + table format, along with the number of index headers in the table. +
-Class-specific information for contiguous layout (Class 1): (Note: The dimensionality information - is in the Dataspace message)
- - -byte | -byte | -byte | -byte | -
---|---|---|---|
AddressO |
- |||
SizeL |
-
- | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - | byte | +byte | +byte | +byte | + +
---|---|
- | - (Items marked with an ‘L’ in the above table are of the size - specified in “Size of Lengths” field in the superblock.) - |
Field Name | -Description | -||
---|---|---|---|
Address |
- This is the address of the raw data in the file. - The address may have the “undefined address” value, to indicate - that storage has not yet been allocated for this array. |
- ||
Size |
- This field contains the size allocated to store the raw data, - in bytes. - - |
- ||
Minimum Message Size for index #0 | +|||
List Cutoff for index #0 | +v2 B-tree Cutoff for index #0 | +||
Number of Messages for index #0 | +This space inserted + only to align table nicely | +||
Index AddressO for index #0 + |
+ |||
Fractal Heap AddressO for + index #0 + |
+ |||
... | +|||
... | +|||
Version for index #N-1 | +Index Type for index #N-1 | +Message Type Flags for index #N-1 | +|
Minimum Message Size for index #N-1 | +|||
List Cutoff for index #N-1 | +v2 B-tree Cutoff for index #N-1 | +||
Number of Messages for index #N-1 | +This space inserted + only to align table nicely | +||
Index AddressO for index #N-1 + |
+ |||
Fractal Heap AddressO for + index #N-1 + |
+ |||
Checksum | +
+ | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
Field Name | +Description | +||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Signature |
+
+
+ The ASCII character string “
+ |
+ ||||||||||||||
Version for index #N |
+
+ This is the version number for the list of shared object + header message indexes and this document describes version 0. + |
+ ||||||||||||||
Index Type for index #N |
+
+ The type of index can be an unsorted list or a v2 B-tree. + |
+ ||||||||||||||
Message Type Flags for index #N |
+
+ This field indicates the type of messages tracked in the + index, as follows: +
An index can track more than one type of message, but each + type of message can only by in one index. + |
+ ||||||||||||||
Minimum Message Size for index #N |
+
+ This is the message size sharing threshold for the index. If + the encoded size of the message is less than this value, the + message is not shared. + |
+ ||||||||||||||
List Cutoff for index #N |
+
+ This is the cutoff value for the indexing of messages to + switch from a list to a v2 B-tree. If the number of messages is + greater than this value, the index should be a v2 B-tree. + |
+ ||||||||||||||
v2 B-tree Cutoff for index #N |
+
+ This is the cutoff value for the indexing of messages to + switch from a v2 B-tree back to a list. If the number of messages + is less than this value, the index should be a list. + |
+ ||||||||||||||
Number of Messages for index #N |
+
+ The number of shared messages being tracked for the index. + |
+ ||||||||||||||
Index Address for index #N |
+
+ This field is the address of the list or v2 B-tree where the + index nodes reside. + |
+ ||||||||||||||
Fractal Heap Address for index #N |
+
+ This field is the address of the fractal heap if shared + messages are stored there. + |
+ ||||||||||||||
Checksum |
+
+ This is the checksum for the table. + |
+
+ Shared messages are indexed either with a shared message + record list, described below, or using a v2 B-tree (using record type + 7). The number of records in the shared message record list is + determined in the index’s entry in the shared object + header message table. +
+ +byte | +byte | +byte | +byte | +
---|---|---|---|
Signature | +|||
Shared Message Record #0 | +|||
Shared Message Record #1 | +|||
... | +|||
Shared Message Record #N-1 | +|||
Checksum | +
Field Name | +Description | +
---|---|
Signature |
+
+
+ The ASCII character string “
+ |
+
Shared Message Record #N |
+
+ + The record for locating the shared message, either in the fractal + heap for the index, or an object header (see format for index + nodes below). + + |
+
Checksum |
+
+ This is the checksum for the list. + |
+
The record for each shared message in an index is stored in one + of the following forms:
+ +byte | +byte | +byte | +byte | +
---|---|---|---|
Message Location | +This space inserted + only to align table nicely | +||
Hash Value | +|||
Reference Count | +|||
Fractal Heap ID + |
+
Field Name | +Description | +
---|---|
Message Location |
+
+ This has a value of 0 indicating that the message is stored + in the heap. + |
+
Hash Value |
+
+ This is the hash value for the message. + |
+
Reference Count |
+
+ This is the number of times the message is used in the file. + + |
+
Fractal Heap ID |
+
+ This is an 8-byte fractal heap ID for the message as stored + in the fractal heap for the index. + |
+
byte | +byte | +byte | +byte | +
---|---|---|---|
Message Location | +This space inserted + only to align table nicely | +||
Hash Value | +|||
Reserved | +Message Type | +Creation Index | +|
Object Header AddressO + |
+
+ | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
Field Name | +Description | +
---|---|
Message Location |
+
+ This has a value of 1 indicating that the message is stored + in an object header. + |
+
Hash Value |
+
+ This is the hash value for the message. + |
+
Message Type |
+
+ This is the message type in the object header. + |
+
Creation Index |
+
+ This is the creation index of the message within the object + header. + |
+
Object Header Address |
+
+ This is the address of the object header where the message is + located. + |
+
Data objects contain the “real” user-visible + information in the file. These objects compose the scientific data and + other information which are generally thought of as “data” + by the end-user. All the other information in the file is provided as a + framework for storing and accessing these data objects.
+ +A data object is composed of header and data information. The + header information contains the information needed to interpret the + data information for the object as well as additional + “metadata” or pointers to additional “metadata” + used to describe or annotate each object.
+ +The header information of an object is designed to encompass all + of the information about an object, except for the data itself. This + information includes the dataspace, the datatype, information about how + the data is stored on disk (in external files, compressed, broken up in + blocks, and so on), as well as other information used by the library to + speed up access to the data objects or maintain a file’s + integrity. Information stored by user applications as attributes is + also stored in the object’s header. The header of each object is + not necessarily located immediately prior to the object’s data in + the file and in fact may be located in any position in the file. The + order of the messages in an object header is not significant.
+ +Object headers are composed of a prefix and a set of messages. + The prefix contains the information needed to interpret the messages + and a small amount of metadata about the object, and the messages + contain the majority of the metadata about the object.
+ +Header messages are aligned on 8-byte boundaries for version 1 + object headers.
+ +byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Reserved (zero) | +Total Number of Header Messages | +|
Object Reference Count | +|||
Object Header Size | +|||
Header Message Type #1 | +Size of Header Message Data #1 | +||
Header Message #1 Flags | +Reserved (zero) | +||
Header Message Data #1 + |
+ |||
. . . |
+ |||
Header Message Type #n | +Size of Header Message Data #n | +||
Header Message #n Flags | +Reserved (zero) | +||
Header Message Data #n + |
+
Field Name | +Description | +||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
+
+ This value is used to determine the format of the information + in the object header. When the format of the object header is + changed, the version number is incremented and can be used to + determine how the information in the object header is formatted. + This is version one (1) (there was no version zero (0)) of the + object header. + |
+ ||||||||||||||||||
Total Number of Header Messages |
+
+ This value determines the total number of messages listed in + object headers for this object. This value includes the messages in + continuation messages for this object. + |
+ ||||||||||||||||||
Object Reference Count |
+
+ This value specifies the number of “hard links” + to this object within the current file. References to the object + from external files, “soft links” in this file and + object references in this file are not tracked. + |
+ ||||||||||||||||||
Object Header Size |
+
+ This value specifies the number of bytes of header message + data following this length field that contain object header + messages for this object header. This value does not include the + size of object header continuation blocks for this object elsewhere + in the file. + |
+ ||||||||||||||||||
Header Message #n Type |
+
+ This value specifies the type of information included in the + following header message data. The message types for header + messages are defined in sections below. + |
+ ||||||||||||||||||
Size of Header Message #n Data |
+
+ This value specifies the number of bytes of header message + data following the header message type and length information for + the current message. The size includes padding bytes to make the + message a multiple of eight bytes. + |
+ ||||||||||||||||||
Header Message #n Flags |
+
+ This is a bit field with the following definition: +
|
+ ||||||||||||||||||
Header Message #n Data |
+
+ The format and length of this field is determined by the + header message type and size respectively. Some header message + types do not require any data and this information can be + eliminated by setting the length of the message to zero. The data + is padded with enough zeroes to make the size a multiple of eight. + + |
+
Note that the “total number of messages” field has + been dropped from the data object header prefix in this version. The + number of messages in the data object header is just determined by the + messages encountered in all the object header blocks.
+ ++ Note also that the fields and messages in this version of data object + headers have no alignment or padding bytes inserted - they are + stored packed together. +
+ +byte | +byte | +byte | +byte | +
---|---|---|---|
Signature | +|||
Version | +Flags | +This space inserted + only to align table nicely | +|
Access time (optional) | +|||
Modification Time (optional) | +|||
Change Time (optional) | +|||
Birth Time (optional) | +|||
Maximum # of compact attributes (optional) | +Minimum # of dense attributes (optional) | +||
Size of Chunk #0 (variable size) | +This space inserted + only to align table nicely | +||
Header Message Type #1 | +Size of Header Message Data #1 | +Header Message #1 Flags | +|
Header Message #1 Creation Order (optional) | +This space inserted + only to align table nicely | +||
Header Message Data #1 + |
+ |||
. . . |
+ |||
Header Message Type #n | +Size of Header Message Data #n | +Header Message #n Flags | +|
Header Message #n Creation Order (optional) | +This space inserted + only to align table nicely | +||
Header Message Data #n + |
+ |||
Gap (optional, variable size) | +|||
Checksum | +
Field Name | +Description | +||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Signature |
+
+
+ The ASCII character string “
+ |
+ ||||||||||||||||||||||||
Version |
+
+ This field has a value of 2 indicating version 2 of the + object header. + |
+ ||||||||||||||||||||||||
Flags |
+
+ This field is a bit field indicating additional information + about the object header. +
|
+ ||||||||||||||||||||||||
Access Time |
+
+ This 32-bit value represents the number of seconds after the + UNIX epoch when the object’s raw data was last accessed (in + other words, read or written). ++ This field is present if bit 5 of flags is set. + + |
+ ||||||||||||||||||||||||
Modification Time |
+
+ This 32-bit value represents the number of seconds after the + UNIX epoch when the object’s raw data was last modified (in + other words, written). ++ This field is present if bit 5 of flags is set. + + |
+ ||||||||||||||||||||||||
Change Time |
+
+ This 32-bit value represents the number of seconds after the + UNIX epoch when the object’s metadata was last changed. ++ This field is present if bit 5 of flags is set. + + |
+ ||||||||||||||||||||||||
Birth Time |
+
+ This 32-bit value represents the number of seconds after the + UNIX epoch when the object was created. ++ This field is present if bit 5 of flags is set. + + |
+ ||||||||||||||||||||||||
Maximum # of compact attributes |
+
+ This is the maximum number of attributes to store in the + compact format before switching to the indexed format. ++ This field is present if bit 4 of flags is set. + + |
+ ||||||||||||||||||||||||
Minimum # of dense attributes |
+
+ This is the minimum number of attributes to store in the + indexed format before switching to the compact format. ++ This field is present if bit 4 of flags is set. + + |
+ ||||||||||||||||||||||||
Size of Chunk #0 |
+
+ This unsigned value specifies the number of bytes of header + message data following this field that contain object header + information. +This value does not include the size of object header + continuation blocks for this object elsewhere in the file. ++ The length of this field varies depending on bits 0 and 1 of the flags + field. + + |
+ ||||||||||||||||||||||||
Header Message #n Type |
+
+ Same format as version 1 of the object header, described + above. + |
+ ||||||||||||||||||||||||
Size of Header Message #n Data |
+
+ + This value specifies the number of bytes of header message data + following the header message type and length information for the + current message. The size of messages in this version does not + include any padding bytes. + + |
+ ||||||||||||||||||||||||
Header Message #n Flags |
+
+ Same format as version 1 of the object header, described + above. + |
+ ||||||||||||||||||||||||
Header Message #n Creation Order |
+
+ This field stores the order that a message of a given type + was created in. ++ This field is present if bit 2 of flags is set. + + |
+ ||||||||||||||||||||||||
Header Message #n Data |
+
+ Same format as version 1 of the object header, described + above. + |
+ ||||||||||||||||||||||||
Gap |
+
+ A gap in an object header chunk is inferred by the end of the + messages for the chunk before the beginning of the chunk’s + checksum. Gaps are always smaller than the size of an object header + message prefix (message type + message size + message flags). +Gaps are formed when a message (typically an attribute + message) in an earlier chunk is deleted and a message from a later + chunk that does not quite fit into the free space is moved into the + earlier chunk. + |
+ ||||||||||||||||||||||||
Checksum |
+
+ This is the checksum for the object header chunk. + |
+
The header message types and the message data associated with + them compose the critical “metadata” about each object. + Some header messages are required for each object while others are + optional. Some optional header messages may also be repeated several + times in the header itself, the requirements and number of times + allowed in the header will be noted in each header message description + below.
+ + +Data object header messages are small pieces of metadata that are + stored in the data object header for each object in an HDF5 file. Data + object header messages provide the metadata required to describe an + object and its contents, as well as optional pieces of metadata that + annotate the meaning or purpose of the object.
+ ++ Data object header messages are either stored directly in the data + object header for the object or are shared between multiple objects in + the file. When a message is shared, a flag in the Message + Flags indicates that the actual Message Data portion of that + message is stored in another location (such as another data object + header, or a heap in the file) and the Message Data field + contains the information needed to locate the actual information for + the message. +
+ +The format of shared message data is described here:
+ +byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Type | +Reserved (zero) | +|
Reserved (zero) | +|||
AddressO + |
+
+ | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
Field Name | +Description | +||||||
---|---|---|---|---|---|---|---|
Version |
+ The version number is used when there are changes in + the format of a shared object message and is described here: +
|
+ ||||||
Type |
+ The type of shared message location: +
|
+ ||||||
Address |
+ The address of the object header containing the + message to be shared. |
+
byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Type | +This space inserted + only to align table nicely | +|
AddressO + |
+
+ | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
Field Name | +Description | +||||
---|---|---|---|---|---|
Version |
+ The version number is used when there are changes in + the format of a shared object message and is described here: +
|
+ ||||
Type |
+ The type of shared message location: +
|
+ ||||
Address |
+ The address of the object header containing the + message to be shared. |
+
byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Type | +This space inserted + only to align table nicely | +|
Location (variable size) | +
Field Name | +Description | +||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Version |
+ The version number indicates changes in the format of + shared object message and is described here: +
|
+ ||||||||||
Type |
+ The type of shared message location: +
|
+ ||||||||||
Location |
+ + This field contains either a Size of Offsets-bytes address + of the object header containing the message to be shared, or an + 8-byte fractal heap ID for the message in the file’s shared + object header message heap. + |
+
The following is a list of currently defined header messages:
+ +Header Message Name: NIL | +|
Header Message Type: 0x0000 | +|
Length: Varies | +|
Status: Optional; may be repeated. | +|
Description: | +The NIL message is used to indicate a message which is to be + ignored when reading the header messages for a data object. + [Possibly one which has been deleted for some reason.] | +
Format of Data: Unspecified | +
Header Message Name: Dataspace | +|
Header Message Type: 0x0001 | +|
Length: Varies according to the number of + dimensions, as described in the following table. | +|
Status: Required for dataset objects; may + not be repeated. | +|
Description: | +The dataspace message describes the number of dimensions (in + other words, “rank”) and size of each dimension that the + data object has. This message is only used for datasets which have a + simple, rectilinear, array-like layout; datasets requiring a more + complex layout are not yet supported. | +
Format of Data: See the tables below. | +
byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Dimensionality | +Flags | +Reserved | +
Reserved | +|||
Dimension #1 SizeL + |
+ |||
. . . |
+ |||
Dimension #n SizeL + |
+ |||
Dimension #1 Maximum SizeL (optional) + |
+ |||
. . . |
+ |||
Dimension #n Maximum SizeL (optional) + |
+ |||
Permutation Index #1L (optional) + |
+ |||
. . . |
+ |||
Permutation Index #nL (optional) + |
+
+ | (Items marked with an ‘L’ in the + above table are of the size specified in “Size of + Lengths” field in the superblock.) | +
Field Name | +Description | +
---|---|
Version |
+
+ This value is used to determine the format of the Dataspace + Message. When the format of the information in the message is + changed, the version number is incremented and can be used to + determine how the information in the object header is formatted. + This document describes version one (1) (there was no version zero + (0)). + |
+
Dimensionality |
+
+ This value is the number of dimensions that the data object + has. + |
+
Flags |
+
+ This field is used to store flags to indicate the presence of + parts of this message. Bit 0 (the least significant bit) is used to + indicate that maximum dimensions are present. Bit 1 is used to + indicate that permutation indices are present. + |
+
Dimension #n Size |
+
+ This value is the current size of the dimension of the data + as stored in the file. The first dimension stored in the list of + dimensions is the slowest changing dimension and the last dimension + stored is the fastest changing dimension. + |
+
Dimension #n Maximum Size |
+
+ + This value is the maximum size of the dimension of the data as + stored in the file. This value may be the special “unlimited” size which indicates + that the data may expand along this dimension indefinitely. If + these values are not stored, the maximum size of each dimension is + assumed to be the dimension’s current size. + + |
+
Permutation Index #n |
+
+ This value is the index permutation used to map each + dimension from the canonical representation to an alternate axis + for each dimension. If these values are not stored, the first + dimension stored in the list of dimensions is the slowest changing + dimension and the last dimension stored is the fastest changing + dimension. + |
+
Version 2 of the dataspace message dropped the optional + permutation index value support, as it was never implemented in the + HDF5 Library:
+ +byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Dimensionality | +Flags | +Type | +
Dimension #1 SizeL + |
+ |||
. . . |
+ |||
Dimension #n SizeL + |
+ |||
Dimension #1 Maximum SizeL (optional) + |
+ |||
. . . |
+ |||
Dimension #n Maximum SizeL (optional) + |
+
+ | (Items marked with an ‘L’ in the + above table are of the size specified in “Size of + Lengths” field in the superblock.) | +
Field Name | +Description | +||||||||
---|---|---|---|---|---|---|---|---|---|
Version |
+
+ This value is used to determine the format of the Dataspace + Message. This field should be ‘2’ for version 2 format + messages. + |
+ ||||||||
Dimensionality |
+
+ This value is the number of dimensions that the data object + has. + |
+ ||||||||
Flags |
+
+ This field is used to store flags to indicate the presence of + parts of this message. Bit 0 (the least significant bit) is used to + indicate that maximum dimensions are present. + |
+ ||||||||
Type |
+
+ This field indicates the type of the dataspace: +
|
+ ||||||||
Dimension #n Size |
+
+ This value is the current size of the dimension of the data + as stored in the file. The first dimension stored in the list of + dimensions is the slowest changing dimension and the last dimension + stored is the fastest changing dimension. + |
+ ||||||||
Dimension #n Maximum Size |
+
+ + This value is the maximum size of the dimension of the data as + stored in the file. This value may be the special “unlimited” size which indicates + that the data may expand along this dimension indefinitely. If + these values are not stored, the maximum size of each dimension is + assumed to be the dimension’s current size. + + |
+
Header Message Name: Link Info | +|
Header Message Type: 0x002 | +|
Length: Varies | +|
Status: Optional; may not be repeated. | +|
Description: | +The link info message tracks variable information about the + current state of the links for a “new style” + group’s behavior. Variable information will be stored in this + message and constant information will be stored in the Group Info message. + | +
Format of Data: See the tables below. | +
byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Flags | +This space inserted + only to align table nicely | +|
Maximum Creation Index (8 bytes, + optional) + |
+ |||
Fractal Heap AddressO + |
+ |||
Address of v2 B-tree for Name IndexO + |
+ |||
Address of v2 B-tree for Creation Order + IndexO (optional) + |
+
+ | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
Field Name | +Description | +||||||||
---|---|---|---|---|---|---|---|---|---|
Version |
+
+ The version number for this message. This document describes + version 0. + |
+ ||||||||
Flags |
+ This field determines various optional aspects of the + link info message: +
|
+ ||||||||
Maximum Creation Index |
+ This 64-bit value is the maximum creation order index + value stored for a link in this group. ++ This field is present if bit 0 of flags is set. + |
+ ||||||||
Fractal Heap Address |
+
+ + This is the address of the fractal heap to store dense links. Each + link stored in the fractal heap is stored as a Link Message. + ++ If there are no links in the group, or the group’s links are + stored “compactly” (as object header messages), this + value will be the undefined address. + + |
+ ||||||||
Address of v2 B-tree for Name Index |
+ This is the address of the version 2 B-tree to index + names of links. ++ If there are no links in the group, or the group’s links are + stored “compactly” (as object header messages), this + value will be the undefined address. + |
+ ||||||||
Address of v2 B-tree for Creation Order Index |
+ This is the address of the version 2 B-tree to index + creation order of links. ++ If there are no links in the group, or the group’s links are + stored “compactly” (as object header messages), this + value will be the undefined address. + ++ This field exists if bit 1 of flags is set. + |
+
Header Message Name: Datatype | +|
Header Message Type: 0x0003 | +|
Length: Variable | +|
Status: Required for dataset or committed + datatype (formerly named datatype) objects; may not be repeated. | +|
Description: | +The datatype message defines the datatype for each + element of a dataset or a common datatype for sharing between + multiple datasets. A datatype can describe an atomic type like a + fixed- or floating-point type or more complex types like a C struct + (compound datatype), array (array datatype) or C++ vector + (variable-length datatype). +Datatype messages that are part of a dataset object do not + describe how elements are related to one another; the dataspace + message is used for that purpose. Datatype messages that are part + of a committed datatype (formerly named datatype) message describe + a common datatype that can be shared by multiple datasets in the + file. |
+
Format of Data: See the tables below. | +
byte | +byte | +byte | +byte | +
---|---|---|---|
Class and Version | +Class Bit Field, Bits 0-7 | +Class Bit Field, Bits 8-15 | +Class Bit Field, Bits 16-23 | +
Size | +|||
+ Properties + + |
+
Field Name | +Description | +||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Class and Version |
+
+ The version of the datatype message and the datatype’s + class information are packed together in this field. The version + number is packed in the top 4 bits of the field and the class is + contained in the bottom 4 bits. +The version number information is used for changes in the + format of the datatype message and is described here: +
The class of the datatype determines the format for the class + bit field and properties portion of the datatype message, which are + described below. The following classes are currently defined: +
|
+ ||||||||||||||||||||||||||||||||||
Class Bit Fields |
+
+ The information in these bit fields is specific to each + datatype class and is described below. All bits not defined for a + datatype class are set to zero. + |
+ ||||||||||||||||||||||||||||||||||
Size |
+
+ The size of a datatype element in bytes. + |
+ ||||||||||||||||||||||||||||||||||
Properties |
+
+ This variable-sized sequence of bytes encodes information + specific to each datatype class and is described for each class + below. If there is no property information specified for a datatype + class, the size of this field is zero bytes. + |
+
Class specific information for Fixed-Point Numbers (Class 0):
+ +Bits | +Meaning | +
---|---|
0 |
+ + Byte Order. If zero, byte order is little-endian; otherwise, + byte order is big endian. + |
+
1, 2 |
+ + Padding type. Bit 1 is the lo_pad bit and bit 2 is the + hi_pad bit. If a datum has unused bits at either end, then the + lo_pad or hi_pad bit is copied to those locations. + |
+
3 |
+ + Signed. If this bit is set then the fixed-point number is in + 2’s complement form. + |
+
4-23 |
+ Reserved (zero). |
+
Byte | +Byte | +Byte | +Byte | +
---|---|---|---|
Bit Offset | +Bit Precision | +
Field Name | +Description | +
---|---|
Bit Offset |
+
+ The bit offset of the first significant bit of the + fixed-point value within the datatype. The bit offset specifies the + number of bits “to the right of” the value (which are + set to the lo_pad bit value). + |
+
Bit Precision |
+
+ The number of bits of precision of the fixed-point value + within the datatype. This value, combined with the datatype + element’s size and the Bit Offset field specifies the number + of bits “to the left of” the value (which are set to + the hi_pad bit value). + |
+
Class specific information for Floating-Point Numbers (Class 1):
+ +Bits | +Meaning | +|||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0, 6 |
+ + Byte Order. These two non-contiguous bits specify the + “endianness” of the bytes in the datatype element. + +
|
+ |||||||||||||||
1, 2, 3 |
+ + Padding type. Bit 1 is the low bits pad type, bit 2 is the + high bits pad type, and bit 3 is the internal bits pad type. If a + datum has unused bits at either end or between the sign bit, + exponent, or mantissa, then the value of bit 1, 2, or 3 is copied + to those locations. + |
+ |||||||||||||||
4-5 |
+ + Mantissa Normalization. This 2-bit bit field specifies how + the most significant bit of the mantissa is managed. + +
|
+ |||||||||||||||
7 |
+ Reserved (zero). |
+ |||||||||||||||
8-15 |
+ + Sign Location. This is the bit position of the sign bit. + Bits are numbered with the least significant bit zero. + |
+ |||||||||||||||
16-23 |
+ Reserved (zero). |
+
Byte | +Byte | +Byte | +Byte | +
---|---|---|---|
Bit Offset | +Bit Precision | +||
Exponent Location | +Exponent Size | +Mantissa Location | +Mantissa Size | +
Exponent Bias | +
Field Name | +Description | +
---|---|
Bit Offset |
+
+ The bit offset of the first significant bit of the + floating-point value within the datatype. The bit offset specifies + the number of bits “to the right of” the value. + |
+
Bit Precision |
+
+ The number of bits of precision of the floating-point value + within the datatype. + |
+
Exponent Location |
+
+ The bit position of the exponent field. Bits are numbered + with the least significant bit number zero. + |
+
Exponent Size |
+
+ The size of the exponent field in bits. + |
+
Mantissa Location |
+
+ The bit position of the mantissa field. Bits are numbered + with the least significant bit number zero. + |
+
Mantissa Size |
+
+ The size of the mantissa field in bits. + |
+
Exponent Bias |
+
+ The bias of the exponent field. + |
+
Class specific information for Time (Class 2):
+ + +Bits | +Meaning | +
---|---|
0 |
+ + Byte Order. If zero, byte order is little-endian; otherwise, + byte order is big endian. + |
+
1-23 |
+ Reserved (zero). |
+
Byte | +Byte | +
---|---|
Bit Precision | +
Field Name | +Description | +
---|---|
Bit Precision |
+
+ The number of bits of precision of the time value. + |
+
Class specific information for Strings (Class 3):
+ + +Bits | +Meaning | +||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0-3 |
+ + Padding type. This four-bit value determines the type of + padding to use for the string. The values are: + + +
|
+ ||||||||||
4-7 |
+ + Character Set. The character set used to encode the string. + +
|
+ ||||||||||
8-23 |
+ Reserved (zero). |
+
There are no properties defined for the string class.
+ + +Class specific information for bit fields (Class 4):
+ +Bits | +Meaning | +
---|---|
0 |
+ + Byte Order. If zero, byte order is little-endian; otherwise, + byte order is big endian. + |
+
1, 2 |
+ + Padding type. Bit 1 is the lo_pad type and bit 2 is the + hi_pad type. If a datum has unused bits at either end, then the + lo_pad or hi_pad bit is copied to those locations. + |
+
3-23 |
+ Reserved (zero). |
+
Byte | +Byte | +Byte | +Byte | +
---|---|---|---|
Bit Offset | +Bit Precision | +
Field Name | +Description | +
---|---|
Bit Offset |
+
+ The bit offset of the first significant bit of the bit field + within the datatype. The bit offset specifies the number of bits + “to the right of” the value. + |
+
Bit Precision |
+
+ The number of bits of precision of the bit field within the + datatype. + |
+
Class specific information for Opaque (Class 5):
+ +Bits | +Meaning | +
---|---|
0-7 |
+ Length of ASCII tag in bytes. |
+
8-23 |
+ Reserved (zero). |
+
Byte | +Byte | +Byte | +Byte | +
---|---|---|---|
ASCII Tag |
+
Field Name | +Description | +
---|---|
ASCII Tag |
+
+ This NUL-terminated string provides a description for the + opaque type. It is NUL-padded to a multiple of 8 bytes. + |
+
Class specific information for Compound (Class 6):
+ +Bits | +Meaning | +
---|---|
0-15 |
+ + Number of Members. This field contains the number of members + defined for the compound datatype. The member definitions are + listed in the Properties field of the data type message. + |
+
16-23 |
+ Reserved (zero). |
+
The Properties field of a compound datatype is a list of the + member definitions of the compound datatype. The member definitions + appear one after another with no intervening bytes. The member types + are described with a (recursively) encoded datatype message.
+ +Note that the property descriptions are different for different + versions of the datatype version. Additionally note that the version 0 + datatype encoding is deprecated and has been replaced with later + encodings in versions of the HDF5 Library from the 1.4 release onward.
+ + +Byte | +Byte | +Byte | +Byte | +
---|---|---|---|
Name + |
+ |||
Byte Offset of Member | +|||
Dimensionality | +Reserved (zero) | +||
Dimension Permutation | +|||
Reserved (zero) | +|||
Dimension #1 Size (required) | +|||
Dimension #2 Size (required) | +|||
Dimension #3 Size (required) | +|||
Dimension #4 Size (required) | +|||
Member Type Message + |
+
Field Name | +Description | +
---|---|
Name |
+
+ This NUL-terminated string provides a description for the + opaque type. It is NUL-padded to a multiple of 8 bytes. + |
+
Byte Offset of Member |
+
+ This is the byte offset of the member within the datatype. + |
+
Dimensionality |
+
+ If set to zero, this field indicates a scalar member. If set + to a value greater than zero, this field indicates that the member + is an array of values. For array members, the size of the array is + indicated by the ‘Size of Dimension n’ field in this + message. + |
+
Dimension Permutation |
+
+ This field was intended to allow an array field to have its + dimensions permuted, but this was never implemented. This field + should always be set to zero. + |
+
Dimension #n Size |
+
+ This field is the size of a dimension of the array field as + stored in the file. The first dimension stored in the list of + dimensions is the slowest changing dimension and the last dimension + stored is the fastest changing dimension. + |
+
Member Type Message |
+
+ This field is a datatype message describing the datatype of + the member. + |
+
Byte | +Byte | +Byte | +Byte | +
---|---|---|---|
Name + |
+ |||
Byte Offset of Member | +|||
Member Type Message + |
+
Field Name | +Description | +
---|---|
Name |
+
+ This NUL-terminated string provides a description for the + opaque type. It is NUL-padded to a multiple of 8 bytes. + |
+
Byte Offset of Member |
+
+ This is the byte offset of the member within the datatype. + |
+
Member Type Message |
+
+ This field is a datatype message describing the datatype of + the member. + |
+
Byte | +Byte | +Byte | +Byte | +
---|---|---|---|
Name + |
+ |||
Byte Offset of Member (variable size) | +|||
Member Type Message + |
+
Field Name | +Description | +
---|---|
Name |
+ + This NUL-terminated string provides a description for the opaque + type. It is not NUL-padded to a multiple of 8 bytes. + |
+
Byte Offset of Member |
+ This is the byte offset of the member within the + datatype. The field size is the minimum number of bytes necessary, + based on the size of the datatype element. For example, a datatype + element size of less than 256 bytes uses a 1 byte length, a + datatype element size of 256-65535 bytes uses a 2 byte length, and + so on. |
+
Member Type Message |
+ This field is a datatype message describing the + datatype of the member. |
+
Class specific information for Reference (Class 7):
+ +Bits | +Meaning | +||||||||
---|---|---|---|---|---|---|---|---|---|
0-3 |
+ + Type. This four-bit value contains the type of reference + described. The values defined are: + + +
|
+ ||||||||
4-23 |
+ Reserved (zero). |
+
There are no properties defined for the reference class.
+ + +Class specific information for Enumeration (Class 8):
+ +Bits | +Meaning | +
---|---|
0-15 |
+ + Number of Members. The number of name/value pairs defined + for the enumeration type. + |
+
16-23 |
+ Reserved (zero). |
+
Byte | +Byte | +Byte | +Byte | +
---|---|---|---|
Base Type + |
+ |||
Names + |
+ |||
Values + |
+
Field Name | +Description | +
---|---|
Base Type |
+
+ Each enumeration type is based on some parent type, usually + an integer. The information for that parent type is described + recursively by this field. + |
+
Names |
+
+ The name for each name/value pair. Each name is stored as a + null terminated ASCII string in a multiple of eight bytes. The + names are in no particular order. + |
+
Values |
+
+ The list of values in the same order as the names. The values + are packed (no inter-value padding) and the size of each value is + determined by the parent type. + |
+
Byte | +Byte | +Byte | +Byte | +
---|---|---|---|
Base Type + |
+ |||
Names + |
+ |||
Values + |
+
Field Name | +Description | +
---|---|
Base Type |
+
+ Each enumeration type is based on some parent type, usually + an integer. The information for that parent type is described + recursively by this field. + |
+
Names |
+
+ + The name for each name/value pair. Each name is stored as a null + terminated ASCII string, not padded to a multiple of eight + bytes. The names are in no particular order. + + |
+
Values |
+
+ The list of values in the same order as the names. The values + are packed (no inter-value padding) and the size of each value is + determined by the parent type. + |
+
Class specific information for Variable-Length (Class 9):
+ +Bits | +Meaning | +||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0-3 |
+ + Type. This four-bit value contains the type of + variable-length datatype described. The values defined are: + + +
|
+ ||||||||||
4-7 |
+ + Padding type. (variable-length string only) This four-bit + value determines the type of padding used for variable-length + strings. The values are the same as for the string padding type, as + follows: + +
This value is set to zero for variable-length sequences. |
+ ||||||||||
8-11 |
+ + Character Set. (variable-length string only) This four-bit + value specifies the character set to be used for encoding the + string: + +
This value is set to zero for variable-length sequences. |
+ ||||||||||
12-23 |
+ Reserved (zero). |
+
Byte | +Byte | +Byte | +Byte | +
---|---|---|---|
Base Type + |
+
Field Name | +Description | +
---|---|
Base Type |
+
+ Each variable-length type is based on some parent type. The + information for that parent type is described recursively by this + field. + |
+
Class specific information for Array (Class 10):
+ +There are no bit fields defined for the array class.
+ +Note that the dimension information defined in the property for + this datatype class is independent of dataspace information for a + dataset. The dimension information here describes the dimensionality of + the information within a data element (or a component of an element, if + the array datatype is nested within another datatype) and the dataspace + for a dataset describes the size and locations of the elements in a + dataset.
+ + +Byte | +Byte | +Byte | +Byte | +
---|---|---|---|
Dimensionality | +Reserved (zero) | +||
Dimension #1 Size | +|||
. . . |
+ |||
Dimension #n Size | +|||
Permutation Index #1 | +|||
. . . |
+ |||
Permutation Index #n | +|||
Base Type + |
+
Field Name | +Description | +
---|---|
Dimensionality |
+
+ This value is the number of dimensions that the array has. + |
+
Dimension #n Size |
+
+ This value is the size of the dimension of the array as + stored in the file. The first dimension stored in the list of + dimensions is the slowest changing dimension and the last dimension + stored is the fastest changing dimension. + |
+
Permutation Index #n |
+
+ This value is the index permutation used to map each + dimension from the canonical representation to an alternate axis + for each dimension. Currently, dimension permutations are not + supported, and these indices should be set to the index position + minus one. In other words, the first dimension should be set to 0, + the second dimension should be set to 1, and so on. + |
+
Base Type |
+
+ Each array type is based on some parent type. The information + for that parent type is described recursively by this field. + |
+
Byte | +Byte | +Byte | +Byte | +
---|---|---|---|
Dimensionality | +This space inserted + only to align table nicely | +||
Dimension #1 Size | +|||
. . . |
+ |||
Dimension #n Size | +|||
Base Type + |
+
Field Name | +Description | +
---|---|
Dimensionality |
+
+ This value is the number of dimensions that the array has. + |
+
Dimension #n Size |
+
+ This value is the size of the dimension of the array as + stored in the file. The first dimension stored in the list of + dimensions is the slowest changing dimension and the last dimension + stored is the fastest changing dimension. + |
+
Base Type |
+
+ Each array type is based on some parent type. The information + for that parent type is described recursively by this field. + |
+
Header Message Name: Fill Value (old) | +|
Header Message Type: 0x0004 | +|
Length: Varies | +|
Status: Optional; may not be repeated. | +|
Description: | +The fill value message stores a single data value + which is returned to the application when an uninitialized data + element is read from a dataset. The fill value is interpreted with + the same datatype as the dataset. If no fill value message is + present then a fill value of all zero bytes is assumed. +This fill value message is deprecated in favor of the + “new” fill value message (Message Type 0x0005) and is + only written to the file for forward compatibility with versions of + the HDF5 Library before the 1.6.0 version. Additionally, it only + appears for datasets with a user-defined fill value (as opposed to + the library default fill value or an explicitly set + “undefined” fill value). |
+
Format of Data: See the tables below. | +
byte | +byte | +byte | +byte | +
---|---|---|---|
Size | +|||
Fill Value (optional, variable + size) + |
+
Field Name | +Description | +
---|---|
Size |
+
+ This is the size of the Fill Value field in bytes. + |
+
Fill Value |
+
+ The fill value. The bytes of the fill value are interpreted + using the same datatype as for the dataset. + |
+
Header Message Name: Fill Value | +|
Header Message Type: 0x0005 | +|
Length: Varies | +|
Status: Required for dataset objects; may + not be repeated. | +|
Description: | +The fill value message stores a single data value which is + returned to the application when an uninitialized data element is + read from a dataset. The fill value is interpreted with the same + datatype as the dataset. | +
Format of Data: See the tables below. | +
byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Space Allocation Time | +Fill Value Write Time | +Fill Value Defined | +
Size (optional) | +|||
Fill Value (optional, variable + size) + |
+
Field Name | +Description | +||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Version |
+
+ The version number information is used for changes in the + format of the fill value message and is described here: +
|
+ ||||||||||
Space Allocation Time |
+
+ When the storage space for the dataset’s raw data will + be allocated. The allowed values are: +
|
+ ||||||||||
Fill Value Write Time |
+
+ At the time that storage space for the dataset’s raw + data is allocated, this value indicates whether the fill value + should be written to the raw data storage elements. The allowed + values are: +
|
+ ||||||||||
Fill Value Defined |
+
+ This value indicates if a fill value is defined for this + dataset. If this value is 0, the fill value is undefined. If this + value is 1, a fill value is defined for this dataset. For version 2 + or later of the fill value message, this value controls the + presence of the Size and Fill Value fields. + |
+ ||||||||||
Size |
+
+ This is the size of the Fill Value field in bytes. This field + is not present if the Version field is greater than 1, and the Fill + Value Defined field is set to 0. + |
+ ||||||||||
Fill Value |
+
+ The fill value. The bytes of the fill value are interpreted + using the same datatype as for the dataset. This field is not + present if the Version field is greater than 1, and the Fill Value + Defined field is set to 0. + |
+
byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Flags | +This space inserted + only to align table nicely | +|
Size (optional) | +|||
Fill Value (optional, variable + size) + |
+
Field Name | +Description | +||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
+
+ The version number information is used for changes in the + format of the fill value message and is described here: +
|
+ ||||||||||||
Flags |
+
+ When the storage space for the dataset’s raw data will + be allocated. The allowed values are: +
|
+ ||||||||||||
Size |
+
+ This is the size of the Fill Value field in bytes. This field + is not present if the Version field is greater than 1, and the Fill + Value Defined flag is set to 0. + |
+ ||||||||||||
Fill Value |
+
+ The fill value. The bytes of the fill value are interpreted + using the same datatype as for the dataset. This field is not + present if the Version field is greater than 1, and the Fill Value + Defined flag is set to 0. + |
+
Header Message Name: Link | +|
Header Message Type: 0x0006 | +|
Length: Varies | +|
Status: Optional; may be repeated. | +|
Description: | +This message encodes the information for a link in a + group’s object header, when the group is storing its links + “compactly”, or in the group’s fractal heap, when + the group is storing its links “densely”. ++ A group is storing its links compactly when the fractal heap + address in the Link Info + Message is set to the “undefined address” value. + |
+
Format of Data: See the tables below. | +
byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Flags | +Link type (optional) | +This space inserted only to align + table nicely | +
Creation Order (8 bytes, + optional) + |
+ |||
Link Name Character Set (optional) | +Length of Link Name (variable size) | +This space inserted + only to align table nicely | +|
Link Name (variable size) | +|||
Link Information (variable size) + |
+
Field Name | +Description | +||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
+ The version number for this message. This document + describes version 1. |
+ ||||||||||||||||||||||
Flags |
+ This field contains information about the link and + controls the presence of other fields below. +
|
+ ||||||||||||||||||||||
Link type |
+ This is the link class type and can be one of the + following values: +
+ This field is present if bit 3 of Flags is set. + |
+ ||||||||||||||||||||||
Creation Order |
+ This 64-bit value is an index of the link’s + creation time within the group. Values start at 0 when the group is + created an increment by one for each link added to the group. + Removing a link from a group does not change existing links’ + creation order field. ++ This field is present if bit 2 of Flags is set. + |
+ ||||||||||||||||||||||
Link Name Character Set |
+ This is the character set for encoding the + link’s name: +
+ This field is present if bit 4 of Flags is set. + |
+ ||||||||||||||||||||||
Length of link name |
+ + This is the length of the link’s name. The size of this field + depends on bits 0 and 1 of Flags. + |
+ ||||||||||||||||||||||
Link name |
+ This is the name of the link, non-NULL terminated. |
+ ||||||||||||||||||||||
Link information |
+ + The format of this field depends on the link type. + ++ For hard links, the field is formatted as follows: + + +
+ For soft links, the field is formatted as follows: + + +
+ For external links, the field is formatted as follows: + + +
+ For user-defined links, the field is formatted as follows: + + +
|
+
Header Message Name: External Data Files | +|
Header Message Type: 0x0007 | +|
Length: Varies | +|
Status: Optional; may not be repeated. | +|
Description: | +The external data storage message indicates that the data + for an object is stored outside the HDF5 file. The filename of the + object is stored as a Universal Resource Location (URL) of the + actual filename containing the data. An external file list record + also contains the byte offset of the start of the data within the + file and the amount of space reserved in the file for that data. | +
Format of Data: See the tables below. | +
byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Reserved (zero) | +||
Allocated Slots | +Used Slots | +||
Heap AddressO + |
+ |||
Slot Definitions... + |
+
+ | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
Field Name | +Description | +||||||
---|---|---|---|---|---|---|---|
Version |
+
+ The version number information is used for changes in the + format of External Data Storage Message and is described here: +
|
+ ||||||
Allocated Slots |
+
+ The total number of slots allocated in the message. Its value + must be at least as large as the value contained in the Used Slots + field. (The current library simply uses the number of Used Slots + for this message) + |
+ ||||||
Used Slots |
+
+ The number of initial slots which contains valid information. + |
+ ||||||
Heap Address |
+
+ This is the address of a local heap which contains the names + for the external files (The local heap information can be found in + Disk Format Level 1D in this document). The name at offset zero in + the heap is always the empty string. + |
+ ||||||
Slot Definitions |
+
+ The slot definitions are stored in order according to the + array addresses they represent. + |
+
byte | +byte | +byte | +byte | +
---|---|---|---|
Name Offset in Local HeapL + |
+ |||
Offset in External Data FileL + |
+ |||
Data Size in External FileL + |
+
+ | (Items marked with an ‘L’ in the + above table are of the size specified in “Size of + Lengths” field in the superblock.) | +
Field Name | +Description | +
---|---|
Name Offset in Local Heap |
+
+
+ The byte offset within the local name heap for the name of the
+ file. File names are stored as a URL which has a protocol name, a
+ host name, a port number, and a file name:
+ |
+
Offset in External Data File |
+
+ This is the byte offset to the start of the data in the + specified file. For files that contain data for a single dataset + this will usually be zero. + |
+
Data Size in External File |
+
+ This is the total number of bytes reserved in the specified + file for raw data storage. For a file that contains exactly one + complete dataset which is not extendable, the size will usually be + the exact size of the dataset. However, by making the size larger + one allows HDF5 to extend the dataset. The size can be set to a + value larger than the entire file since HDF5 will read zeroes past + the end of the file without failing. + |
+
Header Message Name: Data Storage - + Layout | +|
Header Message Type: 0x0008 | +|
Length: Varies | +|
Status: Required for datasets; may not be + repeated. | +|
Description: | +Data layout describes how the elements of a
+ multi-dimensional array are stored in the HDF5 file. Three types of
+ data layout are supported:
+
|
+
Format of Data: See the tables below. | +
byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Dimensionality | +Layout Class | +Reserved (zero) | +
Reserved (zero) | +|||
Data AddressO (optional) + |
+ |||
Dimension 0 Size | +|||
Dimension 1 Size | +|||
... | +|||
Dimension #n Size | +|||
Dataset Element Size (optional) | +|||
Compact Data Size (optional) | +|||
Compact Data... (variable size, + optional) + |
+
+ | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
Field Name | +Description | +||||||||
---|---|---|---|---|---|---|---|---|---|
Version |
+
+ The version number information is used for changes in the + format of the data layout message and is described here: +
|
+ ||||||||
Dimensionality |
+ An array has a fixed dimensionality. This field + specifies the number of dimension size fields later in the message. + The value stored for chunked storage is 1 greater than the number + of dimensions in the dataset’s dataspace. For example, 2 is + stored for a 1 dimensional dataset. |
+ ||||||||
Layout Class |
+ The layout class specifies the type of storage for + the data and how the other fields of the layout message are to be + interpreted. +
|
+ ||||||||
Data Address |
+ For contiguous storage, this is the address of the + raw data in the file. For chunked storage this is the address of + the v1 B-tree that is used to look up the addresses of the chunks. + This field is not present for compact storage. If the version for + this message is greater than 1, the address may have the + “undefined address” value, to indicate that storage has + not yet been allocated for this array. |
+ ||||||||
Dimension #n Size |
+ For contiguous and compact storage the dimensions + define the entire size of the array while for chunked storage they + define the size of a single chunk. In all cases, they are in units + of array elements (not bytes). The first dimension stored in the + list of dimensions is the slowest changing dimension and the last + dimension stored is the fastest changing dimension. |
+ ||||||||
Dataset Element Size |
+ The size of a dataset element, in bytes. This field + is only present for chunked storage. |
+ ||||||||
Compact Data Size |
+ This field is only present for compact data storage. + It contains the size of the raw data for the dataset array, in + bytes. |
+ ||||||||
Compact Data |
+ This field is only present for compact data storage. + It contains the raw data for the dataset array. |
+
Version 3 of this message re-structured the format into specific + properties that are required for each layout class.
+ + +byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Layout Class | +This space inserted + only to align table nicely | +|
Properties (variable size) + |
+
Field Name | +Description | +||||||||
---|---|---|---|---|---|---|---|---|---|
Version |
+
+ The version number information is used for changes in the + format of layout message and is described here: +
|
+ ||||||||
Layout Class |
+ The layout class specifies the type of storage for + the data and how the other fields of the layout message are to be + interpreted. +
|
+ ||||||||
Properties |
+ This variable-sized field encodes information + specific to each layout class and is described below. If there is + no property information specified for a layout class, the size of + this field is zero bytes. |
+
Class-specific information for compact layout (Class 0): (Note: + The dimensionality information is in the Dataspace message)
+ + +byte | +byte | +byte | +byte | +
---|---|---|---|
Size | +This space inserted + only to align table nicely | +||
Raw Data... (variable size) + |
+
Field Name | +Description | +
---|---|
Size |
+ This field contains the size of the raw data for the + dataset array, in bytes. |
+
Raw Data |
+ This field contains the raw data for the dataset + array. |
+
Class-specific information for contiguous layout (Class 1): + (Note: The dimensionality information is in the Dataspace message)
+ + +byte | +byte | +byte | +byte | +
---|---|---|---|
AddressO + |
+ |||
SizeL + |
+
+ | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
+ | (Items marked with an ‘L’ in the above table are + of the size specified in “Size of Lengths” field in the + superblock.) | +
Field Name | +Description | +
---|---|
Address |
+ This is the address of the raw data in the file. The + address may have the “undefined address” value, to + indicate that storage has not yet been allocated for this array. |
+
Size |
+ This field contains the size allocated to store the + raw data, in bytes. |
+
Class-specific information for chunked layout (Class 2):
+ + +byte | +byte | +byte | +byte | +
---|---|---|---|
Dimensionality | +This space inserted + only to align table nicely | +||
AddressO + |
+ |||
Dimension 0 Size | +|||
Dimension 1 Size | +|||
... | +|||
Dimension #n Size | +|||
Dataset Element Size | +
+ | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
Field Name | +Description | +
---|---|
Dimensionality |
+ A chunk has a fixed dimensionality. This field + specifies the number of dimension size fields later in the message. |
+
Address |
+ This is the address of the v1 B-tree that is used to + look up the addresses of the chunks that actually store portions of + the array data. The address may have the “undefined + address” value, to indicate that storage has not yet been + allocated for this array. |
+
Dimension #n Size |
+ These values define the dimension size of a single + chunk, in units of array elements (not bytes). The first dimension + stored in the list of dimensions is the slowest changing dimension + and the last dimension stored is the fastest changing dimension. |
+
Dataset Element Size |
+ The size of a dataset element, in bytes. |
+
Header Message Name: Bogus | +|
Header Message Type: 0x0009 | +|
Length: 4 bytes | +|
Status: For testing only; should never be + stored in a valid file. | +|
Description: | +This message is used for testing the HDF5 Library’s + response to an “unknown” message type and should never + be encountered in a valid HDF5 file. | +
Format of Data: See the tables below. | +
byte | +byte | +byte | +byte | +
---|---|---|---|
Bogus Value | +
Field Name | +Description | +
---|---|
Bogus Value |
+
+
+ This value should always be:
+ |
+
Header Message Name: Group Info | +|
Header Message Type: 0x000A | +|
Length: Varies | +|
Status: Optional; may not be repeated. | +|
Description: | ++ This message stores information for the constants defining a + “new style” group’s behavior. Constant + information will be stored in this message and variable information + will be stored in the Link Info + message. + +Note: the “estimated entry” information below is + used when determining the size of the object header for the group + when it is created. |
+
Format of Data: See the tables below. | +
byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Flags | +Link Phase Change: Maximum Compact Value (optional) | +|
Link Phase Change: Minimum Dense Value (optional) | +Estimated Number of Entries (optional) | +||
Estimated Link Name Length of Entries (optional) | +This space inserted + only to align table nicely | +
Field Name | +Description | +||||||||
---|---|---|---|---|---|---|---|---|---|
Version |
+ The version number for this message. This document + describes version 0. |
+ ||||||||
Flags |
+ This is the group information flag with the following + definition: +
|
+ ||||||||
Link Phase Change: Maximum Compact Value |
+ The is the maximum number of links to store + “compactly” (in the group’s object header). ++ This field is present if bit 0 of Flags is set. + |
+ ||||||||
Link Phase Change: Minimum Dense Value |
+ + This is the minimum number of links to store “densely” + (in the group’s fractal heap). The fractal heap’s + address is located in the Link Info + message. + ++ This field is present if bit 0 of Flags is set. + |
+ ||||||||
Estimated Number of Entries |
+ This is the estimated number of entries in groups. +
+ If this field is not present, the default value of
+ + This field is present if bit 1 of Flags is set. + |
+ ||||||||
Estimated Link Name Length of Entries |
+ This is the estimated length of entry name. +
+ If this field is not present, the default value of
+ + This field is present if bit 1 of Flags is set. + |
+
Header Message Name: Data Storage - + Filter Pipeline | +|
Header Message Type: 0x000B | +|
Length: Varies | +|
Status: Optional; may not be repeated. | +|
Description: | +This message describes the filter pipeline which + should be applied to the data stream by providing filter + identification numbers, flags, a name, and client data. +This message may be present in the object headers of both + dataset and group objects. For datasets, it specifies the filters + to apply to raw data. For groups, it specifies the filters to apply + to the group’s fractal heap. Currently, only datasets using + chunked data storage use the filter pipeline on their raw data. |
+
Format of Data: See the tables below. | +
byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Number of Filters | +Reserved (zero) | +|
Reserved (zero) | +|||
Filter Description List (variable + size) + |
+
Field Name | +Description | +
---|---|
Version |
+ The version number for this message. This table + describes version 1. |
+
Number of Filters |
+ The total number of filters described in this + message. The maximum possible number of filters in a message is 32. |
+
Filter Description List |
+ A description of each filter. A filter description + appears in the next table. |
+
byte | +byte | +byte | +byte | +
---|---|---|---|
Filter Identification Value | +Name Length | +||
Flags | +Number Client Data Values | +||
Name (variable size, optional) + |
+ |||
Client Data (variable size, + optional) + |
+ |||
Padding (variable size, optional) | +
Field Name | +Description | +||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Filter Identification Value |
+
+ + This value, often referred to as a filter identifier, is designed + to be a unique identifier for the filter. Values from zero through + 32,767 are reserved for filters supported by The HDF Group in the + HDF5 Library and for filters requested and supported by third + parties. Filters supported by The HDF Group are documented + immediately below. Information on 3rd-party filters can be found at + The HDF Group’s + Contributions page. + + ++ To request a filter identifier, please contact The HDF + Group’s Help Desk at . + You will be asked to provide the following information: + +
Values from 32768 to 65535 are reserved for non-distributed + uses (for example, internal company usage) or for application usage + when testing a feature. The HDF Group does not track or document + the use of the filters with identifiers from this range. + +The filters currently in library version 1.8.0 are listed + below: +
|
+ ||||||||||||||||||||||||
Name Length |
+ Each filter has an optional null-terminated ASCII + name and this field holds the length of the name including the null + termination padded with nulls to be a multiple of eight. If the + filter has no name then a value of zero is stored in this field. |
+ ||||||||||||||||||||||||
Flags |
+ The flags indicate certain properties for a filter. + The bit values defined so far are: +
|
+ ||||||||||||||||||||||||
Number of Client Data Values |
+ + Each filter can store integer values to control how the filter + operates. The number of entries in the Client Data array + is stored in this field. + |
+ ||||||||||||||||||||||||
Name |
+ + If the Name Length field is non-zero then it will contain + the size of this field, padded to a multiple of eight. This field + contains a null-terminated, ASCII character string to serve as a + comment/name for the filter. + |
+ ||||||||||||||||||||||||
Client Data |
+ + This is an array of four-byte integers which will be passed to the + filter function. The Client Data Number of Values + determines the number of elements in the array. + |
+ ||||||||||||||||||||||||
Padding |
+ Four bytes of zeroes are added to the message at this + point if the Client Data Number of Values field contains an odd + number. |
+
byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Number of Filters | +This space inserted + only to align table nicely | +|
Filter Description List (variable + size) + |
+
Field Name | +Description | +
---|---|
Version |
+ The version number for this message. This table + describes version 2. |
+
Number of Filters |
+ The total number of filters described in this + message. The maximum possible number of filters in a message is 32. |
+
Filter Description List |
+ A description of each filter. A filter description + appears in the next table. |
+
byte | +byte | +byte | +byte | +
---|---|---|---|
Filter Identification Value | +Name Length (optional) | +||
Flags | +Number Client Data Values | +||
Name (variable size, optional) + |
+ |||
Client Data (variable size, + optional) + |
+
Field Name | +Description | +||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Filter Identification Value |
+
+ + This value, often referred to as a filter identifier, is designed + to be a unique identifier for the filter. Values from zero through + 32,767 are reserved for filters supported by The HDF Group in the + HDF5 Library and for filters requested and supported by third + parties. Filters supported by The HDF Group are documented + immediately below. Information on 3rd-party filters can be found at + The HDF Group’s + Contributions page. + + ++ To request a filter identifier, please contact The HDF + Group’s Help Desk at . + You will be asked to provide the following information: + +
Values from 32768 to 65535 are reserved for non-distributed + uses (for example, internal company usage) or for application usage + when testing a feature. The HDF Group does not track or document + the use of the filters with identifiers from this range. + +The filters currently in library version 1.8.0 are listed + below: +
|
+ ||||||||||||||||||||||||
Name Length |
+ Each filter has an optional null-terminated ASCII + name and this field holds the length of the name including the null + termination padded with nulls to be a multiple of eight. If the + filter has no name then a value of zero is stored in this field. ++ Filters with IDs less than 256 (in other words, filters that are + defined in this format documentation) do not store the Name + Length or Name fields. + |
+ ||||||||||||||||||||||||
Flags |
+ The flags indicate certain properties for a filter. + The bit values defined so far are: +
|
+ ||||||||||||||||||||||||
Number of Client Data Values |
+ + Each filter can store integer values to control how the filter + operates. The number of entries in the Client Data array + is stored in this field. + |
+ ||||||||||||||||||||||||
Name |
+ + If the Name Length field is non-zero then it will contain + the size of this field, not padded to a multiple of eight. + This field contains a non-null-terminated, ASCII character + string to serve as a comment/name for the filter. + ++ Filters that are defined in this format documentation such as + deflate and shuffle do not store the Name Length or Name + fields. + |
+ ||||||||||||||||||||||||
Client Data |
+ + This is an array of four-byte integers which will be passed to the + filter function. The Client Data Number of Values + determines the number of elements in the array. + |
+
Header Message Name: Attribute | +|
Header Message Type: 0x000C | +|
Length: Varies | +|
Status: Optional; may be repeated. | +|
Description: | ++ The Attribute message is used to store objects in the HDF5 + file which are used as attributes, or “metadata” about + the current object. An attribute is a small dataset; it has a name, + a datatype, a dataspace, and raw data. Since attributes are stored + in the object header, they should be relatively small (in other + words, less than 64KB). They can be associated with any type of + object which has an object header (groups, datasets, or committed + (named) datatypes). + ++ In 1.8.x versions of the library, attributes can be larger than + 64KB. See the + “Special Issues” section of the Attributes chapter in + the HDF5 User Guide for more information. + +Note: Attributes on an object must have unique names: the + HDF5 Library currently enforces this by causing the creation of an + attribute with a duplicate name to fail. Attributes on different + objects may have the same name, however. |
+
Format of Data: See the tables below. | +
byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Reserved (zero) | +Name Size | +|
Datatype Size | +Dataspace Size | +||
Name (variable size) + |
+ |||
Datatype (variable size) + |
+ |||
Dataspace (variable size) + |
+ |||
Data (variable size) + |
+
Field Name | +Description | +||||||
---|---|---|---|---|---|---|---|
Version |
+ The version number information is used for changes in + the format of the attribute message and is described here: +
|
+ ||||||
Name Size |
+ + The length of the attribute name in bytes including the null + terminator. Note that the Name field below may contain + additional padding not represented by this field. + |
+ ||||||
Datatype Size |
+ + The length of the datatype description in the Datatype + field below. Note that the Datatype field may contain + additional padding not represented by this field. + |
+ ||||||
Dataspace Size |
+ + The length of the dataspace description in the Dataspace + field below. Note that the Dataspace field may contain + additional padding not represented by this field. + |
+ ||||||
Name |
+ The null-terminated attribute name. This field is + padded with additional null characters to make it a multiple of + eight bytes. |
+ ||||||
Datatype |
+ The datatype description follows the same format as + described for the datatype object header message. This field is + padded with additional zero bytes to make it a multiple of eight + bytes. |
+ ||||||
Dataspace |
+ The dataspace description follows the same format as + described for the dataspace object header message. This field is + padded with additional zero bytes to make it a multiple of eight + bytes. |
+ ||||||
Data |
+ + The raw data for the attribute. The size is determined from the + datatype and dataspace descriptions. This field is not + padded with additional bytes. + |
+
byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Flags | +Name Size | +|
Datatype Size | +Dataspace Size | +||
Name (variable size) + |
+ |||
Datatype (variable size) + |
+ |||
Dataspace (variable size) + |
+ |||
Data (variable size) + |
+
Field Name | +Description | +||||||
---|---|---|---|---|---|---|---|
Version |
+ The version number information is used for changes in + the format of the attribute message and is described here: +
|
+ ||||||
Flags |
+ This bit field contains extra information about + interpreting the attribute message: +
|
+ ||||||
Name Size |
+ The length of the attribute name in bytes including + the null terminator. |
+ ||||||
Datatype Size |
+ + The length of the datatype description in the Datatype + field below. + |
+ ||||||
Dataspace Size |
+ + The length of the dataspace description in the Dataspace + field below. + |
+ ||||||
Name |
+ + The null-terminated attribute name. This field is not + padded with additional bytes. + |
+ ||||||
Datatype |
+ The datatype description follows the same format as + described for the datatype object header message. ++ If the Flag field indicates this attribute’s + datatype is shared, this field will contain a “shared + message” encoding instead of the datatype encoding. + ++ This field is not padded with additional bytes. + |
+ ||||||
Dataspace |
+ The dataspace description follows the same format as + described for the dataspace object header message. ++ If the Flag field indicates this attribute’s + dataspace is shared, this field will contain a “shared + message” encoding instead of the dataspace encoding. + ++ This field is not padded with additional bytes. + |
+ ||||||
Data |
+ The raw data for the attribute. The size is + determined from the datatype and dataspace descriptions. ++ This field is not padded with additional zero bytes. + |
+
byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Flags | +Name Size | +|
Datatype Size | +Dataspace Size | +||
Name Character Set Encoding | +This space inserted + only to align table nicely | +||
Name (variable size) + |
+ |||
Datatype (variable size) + |
+ |||
Dataspace (variable size) + |
+ |||
Data (variable size) + |
+
Field Name | +Description | +||||||
---|---|---|---|---|---|---|---|
Version |
+ The version number information is used for changes in + the format of the attribute message and is described here: +
|
+ ||||||
Flags |
+ This bit field contains extra information about + interpreting the attribute message: +
|
+ ||||||
Name Size |
+ The length of the attribute name in bytes including + the null terminator. |
+ ||||||
Datatype Size |
+ + The length of the datatype description in the Datatype + field below. + |
+ ||||||
Dataspace Size |
+ + The length of the dataspace description in the Dataspace + field below. + |
+ ||||||
Name Character Set Encoding |
+ The character set encoding for the attribute’s + name: +
|
+ ||||||
Name |
+ + The null-terminated attribute name. This field is not + padded with additional bytes. + |
+ ||||||
Datatype |
+ The datatype description follows the same format as + described for the datatype object header message. ++ If the Flag field indicates this attribute’s + datatype is shared, this field will contain a “shared + message” encoding instead of the datatype encoding. + ++ This field is not padded with additional bytes. + |
+ ||||||
Dataspace |
+ The dataspace description follows the same format as + described for the dataspace object header message. ++ If the Flag field indicates this attribute’s + dataspace is shared, this field will contain a “shared + message” encoding instead of the dataspace encoding. + ++ This field is not padded with additional bytes. + |
+ ||||||
Data |
+ The raw data for the attribute. The size is + determined from the datatype and dataspace descriptions. ++ This field is not padded with additional zero bytes. + |
+
Header Message Name: Object Comment | +|
Header Message Type: 0x000D | +|
Length: Varies | +|
Status: Optional; may not be repeated. | +|
Description: | +The object comment is designed to be a short description of
+ an object. An object comment is a sequence of non-zero (\0 )
+ ASCII characters with no other formatting included by the library.
+ |
+
Format of Data: See the tables below. | +
byte | +byte | +byte | +byte | +
---|---|---|---|
Comment (variable size) + |
+
Field Name | +Description | +
---|---|
Name |
+ A null terminated ASCII character string. |
+
Header Message Name: Object Modification + Time (Old) | +|
Header Message Type: 0x000E | +|
Length: Fixed | +|
Status: Optional; may not be repeated. | +|
Description: | +The object modification date and time is a timestamp + which indicates (using ISO-8601 date and time format) the last + modification of an object. The time is updated when any object + header message changes according to the system clock where the + change was posted. All fields of this message should be interpreted + as coordinated universal time (UTC). ++ This modification time message is deprecated in favor of the + “new” Object + Modification Time message and is no longer written to the file in + versions of the HDF5 Library after the 1.6.0 version. + |
+
Format of Data: See the tables below. | +
byte | +byte | +byte | +byte | +
---|---|---|---|
Year | +|||
Month | +Day of Month | +||
Hour | +Minute | +||
Second | +Reserved | +
Field Name | +Description | +
---|---|
Year |
+
+ The four-digit year as an ASCII string. For example,
+ |
+
Month |
+
+ The month number as a two digit ASCII string where January is
+ |
+
Day of Month |
+
+ The day number within the month as a two digit ASCII string. The
+ first day of the month is
+ |
+
Hour |
+
+ The hour of the day as a two digit ASCII string where midnight is
+ |
+
Minute |
+
+ The minute of the hour as a two digit ASCII string where the first
+ minute of the hour is
+ |
+
Second |
+
+ The second of the minute as a two digit ASCII string where the
+ first second of the minute is
+ |
+
Reserved |
+ This field is reserved and should always be zero. |
+
Header Message Name: Shared Message Table | +|
Header Message Type: 0x000F | +|
Length: Fixed | +|
Status: Optional; may not be repeated. | +|
Description: | +This message is used to locate the table of shared object + header message (SOHM) indexes. Each index consists of information to + find the shared messages from either the heap or object header. This + message is only found in the superblock extension. + | +
Format of Data: See the tables below. | +
byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +This space inserted + only to align table nicely | +||
Shared Object Header Message Table + AddressO + |
+ |||
Number of Indices | +This space inserted + only to align table nicely | +
+ | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
Field Name | +Description | +
---|---|
Version |
+ The version number for this message. This document + describes version 0. |
+
Shared Object Header Message Table Address |
+ This field is the address of the master table for + shared object header message indexes. |
+
Number of Indices |
+ This field is the number of indices in the master + table. |
+
Header Message Name: Object Header + Continuation | +|
Header Message Type: 0x0010 | +|
Length: Fixed | +|
Status: Optional; may be repeated. | +|
Description: | +The object header continuation is the location in the file + of a block containing more header messages for the current data + object. This can be used when header blocks become too large or are + likely to change over time. | +
Format of Data: See the tables below. | +
byte | +byte | +byte | +byte | +
---|---|---|---|
OffsetO + |
+ |||
LengthL + |
+
+ | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
+ | (Items marked with an ‘L’ in the above table are + of the size specified in “Size of Lengths” field in the + superblock.) | +
Field Name | +Description | +
---|---|
Offset |
+ This value is the address in the file where the + header continuation block is located. |
+
Length |
+ This value is the length in bytes of the header + continuation block in the file. |
+
The format of the header continuation block that this message + points to depends on the version of the object header that the message + is contained within.
+ ++ Continuation blocks for version 1 object headers have no special + formatting information; they are merely a list of object header message + info sequences (type, size, flags, reserved bytes and data for each + message sequence). See the description of Version 1 Data Object Header Prefix. +
+ ++ Continuation blocks for version 2 object headers do have + special formatting information as described here (see also the + description of Version 2 Data + Object Header Prefix.): +
+byte | +byte | +byte | +byte | +
---|---|---|---|
Signature | +|||
Header Message Type #1 | +Size of Header Message Data #1 | +Header Message #1 Flags | +|
Header Message #1 Creation Order (optional) | +This space inserted + only to align table nicely | +||
Header Message Data #1 + |
+ |||
. . . |
+ |||
Header Message Type #n | +Size of Header Message Data #n | +Header Message #n Flags | +|
Header Message #n Creation Order (optional) | +This space inserted + only to align table nicely | +||
Header Message Data #n + |
+ |||
Gap (optional, variable size) | +|||
Checksum | +
Field Name | +Description | +
---|---|
Signature |
+
+
+ The ASCII character string “
+ |
+
Header Message #n Type |
+
+ Same format as version 1 of the object header, described + above. + |
+
Size of Header Message #n Data |
+
+ Same format as version 1 of the object header, described + above. + |
+
Header Message #n Flags |
+
+ Same format as version 1 of the object header, described + above. + |
+
Header Message #n Creation Order |
+
+ This field stores the order that a message of a given type + was created in. ++ This field is present if bit 2 of flags is set. + + |
+
Header Message #n Data |
+
+ Same format as version 1 of the object header, described + above. + |
+
Gap |
+
+ A gap in an object header chunk is inferred by the end of the + messages for the chunk before the beginning of the chunk’s + checksum. Gaps are always smaller than the size of an object header + message prefix (message type + message size + message flags). +Gaps are formed when a message (typically an attribute + message) in an earlier chunk is deleted and a message from a later + chunk that does not quite fit into the free space is moved into the + earlier chunk. + |
+
Checksum |
+
+ This is the checksum for the object header chunk. + |
+
Header Message Name: Symbol Table Message | +|
Header Message Type: 0x0011 | +|
Length: Fixed | +|
Status: Required for “old + style” groups; may not be repeated. | +|
Description: | +Each “old style” group has a v1 B-tree and a + local heap for storing symbol table entries, which are located with + this message. | +
Format of data: See the tables below. | +
byte | -byte | -byte | -byte | -
---|---|---|---|
Dimensionality | -This space inserted only to align table nicely | -||
AddressO |
- |||
Dimension 0 Size | -|||
Dimension 1 Size | -|||
... | -|||
Dimension #n Size | -|||
Dataset Element Size | -
- | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - |
Field Name | -Description | -
---|---|
Dimensionality |
- A chunk has a fixed dimensionality. This field specifies - the number of dimension size fields later in the message. |
-
Address |
- This is the address of the v1 B-tree that is used to look up the - addresses of the chunks that actually store portions of the array - data. The address may have the “undefined address” value, to - indicate that storage has not yet been allocated for this array. |
-
Dimension #n Size |
- These values define the dimension size of a single chunk, in - units of array elements (not bytes). The first dimension stored in - the list of dimensions is the slowest changing dimension and the - last dimension stored is the fastest changing dimension. - - |
-
Dataset Element Size |
- The size of a dataset element, in bytes. - - |
-
+ | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
Field Name | +Description | +
---|---|
v1 B-tree Address |
+ This value is the address of the v1 B-tree containing + the symbol table entries for the group. |
+
Local Heap Address |
+ This value is the address of the local heap + containing the link names for the symbol table entries for the + group. |
+
Header Message Name: Bogus | |
Header Message Type: 0x0009 | |
Length: 4 bytes | |
Status: For testing only; should never - be stored in a valid file. | |
Description: | -This message is used for testing the HDF5 Library’s - response to an “unknown” message type and should - never be encountered in a valid HDF5 file. |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Bogus Value | -
Field Name | -Description | -
---|---|
Bogus Value |
-
- This value should always be: |
-
byte | +byte | +byte | +byte | +
---|---|---|---|
Version | +Reserved (zero) | +||
Seconds After UNIX Epoch | +
Field Name | +Description | +||||||
---|---|---|---|---|---|---|---|
Version |
+ The version number is used for changes in the format + of Object Modification Time and is described here: +
|
+ ||||||
Seconds After UNIX Epoch |
+ A 32-bit unsigned integer value that stores the + number of seconds since 0 hours, 0 minutes, 0 seconds, January 1, + 1970, Coordinated Universal Time. |
+
Header Message Name: Group Info | |
Header Message Type: 0x000A | |
Length: Varies | |
Status: Optional; may not be - repeated. | |
Description: | -This message stores information for the constants defining - a “new style” group’s behavior. Constant - information will be stored in this message and variable - information will be stored in the - Link Info message. -Note: the “estimated entry” information below is - used when determining the size of the object header for the - group when it is created. |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -Flags | -Link Phase Change: Maximum Compact Value (optional) | -|
Link Phase Change: Minimum Dense Value (optional) | -Estimated Number of Entries (optional) | -||
Estimated Link Name Length of Entries (optional) | -This space inserted only to align table nicely | -||
Header Message Name: B-tree + ‘K’ Values | +|||
Header Message Type: 0x0013 | +|||
Length: Fixed | +|||
Status: Optional; may not be repeated. | +|||
Description: | +This message retrieves non-default ‘K’ values + for internal and leaf nodes of a group or indexed storage v1 + B-trees. This message is only found in the superblock + extension. + | +||
Format of Data: See the tables below. | +
Field Name | -Description | -||||||||
---|---|---|---|---|---|---|---|---|---|
Version |
- The version number for this message. This document describes version 0. - |
- ||||||||
Flags |
- This is the group information flag with the following definition: - -
|
- ||||||||
Link Phase Change: Maximum Compact Value |
- The is the maximum number of links to store “compactly” (in - the group’s object header). -This field is present if bit 0 of Flags is set. - |
- ||||||||
Link Phase Change: Minimum Dense Value |
- This is the minimum number of links to store “densely” (in - the group’s fractal heap). The fractal heap’s address is - located in the Link Info - message. -This field is present if bit 0 of Flags is set. - |
- ||||||||
Estimated Number of Entries |
- This is the estimated number of entries in groups. -If this field is not present, the default value of This field is present if bit 1 of Flags is set. - |
- ||||||||
Estimated Link Name Length of Entries |
- This is the estimated length of entry name. -If this field is not present, the default value of This field is present if bit 1 of Flags is set. - |
- ||||||||
byte | +byte | +byte | +byte | +
Field Name | +Description | +
---|---|
Version |
+ The version number for this message. This document + describes version 0. |
+
Indexed Storage Internal Node K |
+ This is the node ‘K’ value for each + internal node of an indexed storage v1 B-tree. See the description + of this field in version 0 and 1 of the superblock as well the + section on v1 B-trees. |
+
Group Internal Node K |
+ This is the node ‘K’ value for each + internal node of a group v1 B-tree. See the description of this + field in version 0 and 1 of the superblock as well as the section + on v1 B-trees. |
+
Group Leaf Node K |
+ This is the node ‘K’ value for each leaf + node of a group v1 B-tree. See the description of this field in + version 0 and 1 of the superblock as well as the section on v1 + B-trees. |
+
Header Message Name: - Data Storage - Filter Pipeline | |
Header Message Type: 0x000B | |
Length: Varies | |
Status: Optional; may not be - repeated. | |
Description: | -This message describes the filter pipeline which should - be applied to the data stream by providing filter identification - numbers, flags, a name, and client data. -This message may be present in the object headers of both - dataset and group objects. For datasets, it specifies the - filters to apply to raw data. For groups, it specifies the - filters to apply to the group’s fractal heap. Currently, - only datasets using chunked data storage use the filter - pipeline on their raw data. |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -Number of Filters | -Reserved (zero) | -|
Reserved (zero) | -|||
Filter Description List (variable size) |
-
Field Name | -Description | -
---|---|
Version |
- The version number for this message. This table - describes version 1. |
-
Number of Filters |
- The total number of filters described in this - message. The maximum possible number of filters in a - message is 32. |
-
Filter Description List |
- A description of each filter. A filter description - appears in the next table. |
-
byte | -byte | -byte | -byte | -
---|---|---|---|
Filter Identification Value | -Name Length | -||
Flags | -Number Client Data Values | -||
Name (variable size, optional) |
- |||
Client Data (variable size, optional) |
- |||
Padding (variable size, optional) | -
Field Name | -Description | -||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Filter Identification Value |
-
- - This value, often referred to as a filter identifier, - is designed to be a unique identifier for the filter. - Values from zero through 32,767 are reserved for filters - supported by The HDF Group in the HDF5 Library and for - filters requested and supported by third parties. - Filters supported by The HDF Group are documented immediately - below. Information on 3rd-party filters can be found at - The HDF Group’s - - Contributions page. - -- To request a filter identifier, please contact - The HDF Group’s Help Desk at - . - You will be asked to provide the following information: -
- Values from 32768 to 65535 are reserved for non-distributed uses - (for example, internal company usage) or for application usage - when testing a feature. The HDF Group does not track or document - the use of the filters with identifiers from this range. - -- The filters currently in library version 1.8.0 are - listed below: - -
|
- ||||||||||||||||||||||||
Name Length |
- Each filter has an optional null-terminated ASCII name - and this field holds the length of the name including the - null termination padded with nulls to be a multiple of - eight. If the filter has no name then a value of zero is - stored in this field. |
- ||||||||||||||||||||||||
Flags |
- The flags indicate certain properties for a filter. The - bit values defined so far are: -
|
- ||||||||||||||||||||||||
Number of Client Data Values |
- Each filter can store integer values to control - how the filter operates. The number of entries in the - Client Data array is stored in this field. |
- ||||||||||||||||||||||||
Name |
- If the Name Length field is non-zero then it will - contain the size of this field, padded to a multiple of eight. This - field contains a null-terminated, ASCII character - string to serve as a comment/name for the filter. |
- ||||||||||||||||||||||||
Client Data |
- This is an array of four-byte integers which will be - passed to the filter function. The Client Data Number of - Values determines the number of elements in the array. |
- ||||||||||||||||||||||||
Padding |
- Four bytes of zeroes are added to the message at this - point if the Client Data Number of Values field contains - an odd number. |
-
byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -Number of Filters | -This space inserted only to align table nicely | -|
Filter Description List (variable size) |
-
Field Name | -Description | -
---|---|
Version |
- The version number for this message. This table - describes version 2. |
-
Number of Filters |
- The total number of filters described in this - message. The maximum possible number of filters in a - message is 32. |
-
Filter Description List |
- A description of each filter. A filter description - appears in the next table. |
-
byte | -byte | -byte | -byte | -
---|---|---|---|
Filter Identification Value | -Name Length (optional) | -||
Flags | -Number Client Data Values | -||
Name (variable size, optional) |
- |||
Client Data (variable size, optional) |
-
Field Name | -Description | -||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Filter Identification Value |
-
- - This value, often referred to as a filter identifier, - is designed to be a unique identifier for the filter. - Values from zero through 32,767 are reserved for filters - supported by The HDF Group in the HDF5 Library and for - filters requested and supported by third parties. - Filters supported by The HDF Group are documented immediately - below. Information on 3rd-party filters can be found at - The HDF Group’s - - Contributions page. - -- To request a filter identifier, please contact - The HDF Group’s Help Desk at - . - You will be asked to provide the following information: -
- Values from 32768 to 65535 are reserved for non-distributed uses - (for example, internal company usage) or for application usage - when testing a feature. The HDF Group does not track or document - the use of the filters with identifiers from this range. - -- The filters currently in library version 1.8.0 are - listed below: - -
|
- ||||||||||||||||||||||||
Name Length |
- Each filter has an optional null-terminated ASCII name - and this field holds the length of the name including the - null termination padded with nulls to be a multiple of - eight. If the filter has no name then a value of zero is - stored in this field. -Filters with IDs less than 256 (in other words, filters - that are defined in this format documentation) do not store - the Name Length or Name fields. - - |
- ||||||||||||||||||||||||
Flags |
- The flags indicate certain properties for a filter. The - bit values defined so far are: -
|
- ||||||||||||||||||||||||
Number of Client Data Values |
- Each filter can store integer values to control - how the filter operates. The number of entries in the - Client Data array is stored in this field. |
- ||||||||||||||||||||||||
Name |
- If the Name Length field is non-zero then it will - contain the size of this field, not padded to a multiple - of eight. This field contains a non-null-terminated, - ASCII character string to serve as a comment/name for the filter. - -Filters that are defined in this format documentation - such as deflate and shuffle do not store the Name - Length or Name fields. - - |
- ||||||||||||||||||||||||
Client Data |
- This is an array of four-byte integers which will be - passed to the filter function. The Client Data Number of - Values determines the number of elements in the array. - |
-
Field Name | +Description | +
---|---|
Version |
+ The version number for this message. This document + describes version 0. |
+
Driver Identification |
+ This is an eight-byte ASCII string without null + termination which identifies the driver. |
+
Driver Information Size |
+ + The size in bytes of the Driver Information field of this + message. + |
+
Driver Information |
+ Driver information is stored in a format defined by + the file driver. |
+
Header Message Name: Attribute | |
Header Message Type: 0x000C | |
Length: Varies | |
Status: Optional; may be - repeated. | |
Description: | -The Attribute message is used to store objects - in the HDF5 file which are used as attributes, or - “metadata” about the current object. An attribute - is a small dataset; it has a name, a datatype, a dataspace, and - raw data. Since attributes are stored in the object header, they - should be relatively small (in other words, less than 64KB). - They can be associated with any type of object which has an - object header (groups, datasets, or committed (named) - datatypes). -In 1.8.x versions of the library, attributes can be larger - than 64KB. See the - - “Special Issues” section of the Attributes chapter - in the HDF5 User’s Guide for more information. -Note: Attributes on an object must have unique names: - the HDF5 Library currently enforces this by causing the - creation of an attribute with a duplicate name to fail. - Attributes on different objects may have the same name, - however. |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -Reserved (zero) | -Name Size | -|
Datatype Size | -Dataspace Size | -||
Name (variable size) |
- |||
Datatype (variable size) |
- |||
Dataspace (variable size) |
- |||
Data (variable size) |
-
Field Name | -Description | -||||||
---|---|---|---|---|---|---|---|
Version |
- The version number information is used for changes in the format of the - attribute message and is described here: -
|
- ||||||
Name Size |
- The length of the attribute name in bytes including the - null terminator. Note that the Name field below may - contain additional padding not represented by this - field. |
- ||||||
Datatype Size |
- The length of the datatype description in the Datatype - field below. Note that the Datatype field may contain - additional padding not represented by this field. |
- ||||||
Dataspace Size |
- The length of the dataspace description in the Dataspace - field below. Note that the Dataspace field may contain - additional padding not represented by this field. |
- ||||||
Name |
- The null-terminated attribute name. This field is - padded with additional null characters to make it a - multiple of eight bytes. |
- ||||||
Datatype |
- The datatype description follows the same format as - described for the datatype object header message. This - field is padded with additional zero bytes to make it a - multiple of eight bytes. |
- ||||||
Dataspace |
- The dataspace description follows the same format as - described for the dataspace object header message. This - field is padded with additional zero bytes to make it a - multiple of eight bytes. |
- ||||||
Data |
- The raw data for the attribute. The size is determined - from the datatype and dataspace descriptions. This - field is not padded with additional bytes. |
-
byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -Flags | -Name Size | -|
Datatype Size | -Dataspace Size | -||
Name (variable size) |
- |||
Datatype (variable size) |
- |||
Dataspace (variable size) |
- |||
Data (variable size) |
-
Field Name | -Description | -||||||
---|---|---|---|---|---|---|---|
Version |
- The version number information is used for changes in the - format of the attribute message and is described here: -
|
- ||||||
Flags |
- This bit field contains extra information about - interpreting the attribute message: - -
|
- ||||||
Name Size |
- The length of the attribute name in bytes including the - null terminator. |
- ||||||
Datatype Size |
- The length of the datatype description in the Datatype - field below. |
- ||||||
Dataspace Size |
- The length of the dataspace description in the Dataspace - field below. |
- ||||||
Name |
- The null-terminated attribute name. This field is not - padded with additional bytes. |
- ||||||
Datatype |
- The datatype description follows the same format as - described for the datatype object header message. - -If the - Flag field indicates this attribute’s datatype is - shared, this field will contain a “shared message” encoding - instead of the datatype encoding. - -This field is not padded with additional bytes. - - |
- ||||||
Dataspace |
- The dataspace description follows the same format as - described for the dataspace object header message. - -If the - Flag field indicates this attribute’s dataspace is - shared, this field will contain a “shared message” encoding - instead of the dataspace encoding. - -This field is not padded with additional bytes. - |
- ||||||
Data |
- The raw data for the attribute. The size is determined - from the datatype and dataspace descriptions. - -This field is not padded with additional zero bytes. - - |
-
byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -Flags | -Name Size | -|
Datatype Size | -Dataspace Size | -||
Name Character Set Encoding | -This space inserted only to align table nicely | -||
Name (variable size) |
- |||
Datatype (variable size) |
- |||
Dataspace (variable size) |
- |||
Data (variable size) |
-
Field Name | -Description | -||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
- The version number information is used for changes in the - format of the attribute message and is described here: +
+
+
+
| ||||||||||||||||||||||||||||||||||||||||||
Bit | +Description | +||||||||||||||||||||||||||||||||||||||||||
0 |
+ If set, creation order for attributes is tracked. | +||||||||||||||||||||||||||||||||||||||||||
1 |
+ If set, creation order for attributes is indexed. | +||||||||||||||||||||||||||||||||||||||||||
2-7 |
+ Reserved | +
Maximum Creation Index
The is the maximum creation order index value for the + attributes on the object.
++ This field is present if bit 0 of Flags is set. +
Fractal Heap Address
This is the address of the fractal heap to store + dense attributes.
Attribute Name v2 B-tree Address
This is the address of the version 2 B-tree to index + the names of densely stored attributes.
Header Message Name: Object - Comment | |
Header Message Type: 0x000D | |
Length: Varies | |
Status: Optional; may not be - repeated. | |
Description: | -The object comment is designed to be a short description of
- an object. An object comment is a sequence of non-zero
- (\0 ) ASCII characters with no other formatting
- included by the library. |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Comment (variable size) |
-
Attribute Creation Order v2 B-tree Address
This is the address of the version 2 B-tree to index + the creation order of densely stored attributes.
++ This field is present if bit 1 of Flags is set. +
Field Name | -Description | -
---|---|
Name |
- A null terminated ASCII character string. |
-
Header Message Name: Object - Modification Time (Old) | |
Header Message Type: 0x000E | |
Length: Fixed | |
Status: Optional; may not be - repeated. | |
Description: | -The object modification date and time is a timestamp - which indicates (using ISO-8601 date and time format) the last - modification of an object. The time is updated when any object - header message changes according to the system clock where the - change was posted. All fields of this message should be - interpreted as coordinated universal time (UTC). -This modification time message is deprecated in favor of - the “new” Object - Modification Time message and is no longer written to the - file in versions of the HDF5 Library after the 1.6.0 - version. |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Year | -|||
Month | -Day of Month | -||
Hour | -Minute | -||
Second | -Reserved | -
Field Name | -Description | -
---|---|
Year |
- The four-digit year as an ASCII string. For example,
- |
-
Month |
- The month number as a two digit ASCII string where
- January is |
-
Day of Month |
- The day number within the month as a two digit ASCII
- string. The first day of the month is |
-
Hour |
- The hour of the day as a two digit ASCII string where
- midnight is |
-
Minute |
- The minute of the hour as a two digit ASCII string where
- the first minute of the hour is |
-
Second |
- The second of the minute as a two digit ASCII string
- where the first second of the minute is |
-
Reserved |
- This field is reserved and should always be zero. |
-
byte | +byte | +byte | +byte | +
---|
Header Message Name: Shared Message - Table | |
Header Message Type: 0x000F | |
Length: Fixed | |
Status: Optional; may not be - repeated. | |
Description: | -This message is used to locate the table of shared object - header message (SOHM) indexes. Each index consists of information - to find the shared messages from either the heap or object header. - This message is only found in the superblock - extension. |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -This space inserted only to align table nicely | -||
Shared Object Header Message Table AddressO |
- |||
Number of Indices | -This space inserted only to align table nicely | -||
Version | +This space inserted + only to align table nicely | +
- | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - |
Version
The version number for this message. This document + describes version 0.
Field Name | -Description | -
---|---|
Version |
- The version number for this message. This document describes version 0. |
-
Shared Object Header Message Table Address |
- This field is the address of the master table for shared - object header message indexes. - |
-
Number of Indices |
- This field is the number of indices in the master table. - |
-
Reference Count |
+ The unsigned 32-bit integer is the reference count + for the object. This message is only present in “version + 2” (or later) object headers, and if not present those object + header versions, the reference count for the object is assumed to + be 1. |
+
Header Message Name: Object Header - Continuation | |
Header Message Type: 0x0010 | |
Length: Fixed | |
Status: Optional; may be - repeated. | |
Description: | -The object header continuation is the location in the file - of a block containing more header messages for the current data - object. This can be used when header blocks become too large or - are likely to change over time. |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | +Header Message Name: File Space Info | |
---|---|---|---|---|---|
OffsetO |
+ Header Message Type: 0x0018 | ||||
LengthL |
+ Length: Fixed |
- | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - | Status: Optional; may not be repeated. | +
- | - (Items marked with an ‘L’ in the above table are of the size - specified in “Size of Lengths” field in the superblock.) - |
Field Name | -Description | +byte | +byte | +byte | +byte |
---|---|---|---|---|---|
Offset |
- This value is the address in the file where the - header continuation block is located. |
+ Version | +Strategy | +ThresholdL | |
Length |
- This value is the length in bytes of the header continuation - block in the file. |
+ Super-block Free-space Manager AddressO |
The format of the header continuation block that this message points - to depends on the version of the object header that the message is - contained within. -
- -- Continuation blocks for version 1 object headers have no special - formatting information; they are merely a list of object header - message info sequences (type, size, flags, reserved bytes and data - for each message sequence). See the description - of Version 1 Data Object Header Prefix. -
- -Continuation blocks for version 2 object headers do have - special formatting information as described here - (see also the description of - Version 2 Data Object Header Prefix.): -
-byte | -byte | -byte | -byte | -
---|---|---|---|
Signature | -|||
Header Message Type #1 | -Size of Header Message Data #1 | -Header Message #1 Flags | -|
Header Message #1 Creation Order (optional) | -This space inserted only to align table nicely | -||
Header Message Data #1 |
- |||
. . . |
- |||
Header Message Type #n | -Size of Header Message Data #n | -Header Message #n Flags | -|
Header Message #n Creation Order (optional) | -This space inserted only to align table nicely | -||
Header Message Data #n |
- |||
Gap (optional, variable size) | -|||
Checksum | -
Field Name | -Description | -||
---|---|---|---|
Signature |
-
- The ASCII character string “ |
- ||
Header Message #n Type |
-
- Same format as version 1 of the object header, described above. - |
- ||
Size of Header Message #n Data |
-
- Same format as version 1 of the object header, described above. - |
- ||
Header Message #n Flags |
-
- Same format as version 1 of the object header, described above. - |
- ||
Header Message #n Creation Order |
-
- This field stores the order that a message of a given type - was created in. -This field is present if bit 2 of flags is set. - |
- ||
Header Message #n Data |
-
- Same format as version 1 of the object header, described above. - |
- ||
Gap |
-
- A gap in an object header chunk is inferred by the end of the - messages for the chunk before the beginning of the chunk’s - checksum. Gaps are always smaller than the size of an - object header message prefix (message type + message size + - message flags). -Gaps are formed when a message (typically an attribute message) - in an earlier chunk is deleted and a message from a later - chunk that does not quite fit into the free space is moved - into the earlier chunk. - |
- ||
Checksum |
-
- This is the checksum for the object header chunk. - - |
+ ||
B-tree Free-space Manager AddressO |
+ | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
+ | (Items marked with an ‘L’ in the above table are + of the size specified in “Size of Lengths” field in the + superblock.) | +
Header Message Name: Symbol Table - Message | |
Header Message Type: 0x0011 | |
Length: Fixed | |
Status: Required for - “old style” groups; may not be repeated. | |
Description: | -Each “old style” group has a v1 B-tree and a - local heap for storing symbol table entries, which are located - with this message. |
Format of data: See the tables - below. |
byte | -byte | -byte | -byte | +Field Name | +Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
v1 B-tree AddressO |
+ Version |
+ This is the version number of this message. This + document describes version 0. |
|||||||||||||
Local Heap AddressO |
+ Strategy |
+ This is the file space management strategy for the + file. There are four types of strategies: +
|
- | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - |
Threshold
+ This is the free-space section threshold. The library’s + free-space managers will track only free-space sections with size + greater than or equal to threshold. The default is to + track free-space sections of all sizes. +
Superblock Free-space Manager Address
This is the address of the free-space manager for + H5FD_MEM_SUPER allocation type.
B-tree Free-space Manager Address
This is the address of the free-space manager for + H5FD_MEM_BTREE allocation type.
Field Name | -Description | +Raw Data Free-space Manager Address |
+ This is the address of the free-space manager for + H5FD_MEM_DRAW allocation type. |
---|---|---|---|
v1 B-tree Address |
- This value is the address of the v1 B-tree containing the - symbol table entries for the group. |
+ Global Heap Free-space Manager Address |
+ This is the address of the free-space manager for + H5FD_MEM_GHEAP allocation type. |
Local Heap Address |
- This value is the address of the local heap containing - the link names for the symbol table entries for the group. |
+ Local Heap Free-space Manager Address |
+ This is the address of the free-space manager for + H5FD_MEM_LHEAP allocation type. |
Object Header Free-space Manager Address
This is the address of the free-space manager for + H5FD_MEM_OHDR allocation type.
Header Message Name: Object - Modification Time | |
Header Message Type: 0x0012 | |
Length: Fixed | |
Status: Optional; may not be - repeated. | |
Description: | -The object modification time is a timestamp which indicates - the time of the last modification of an object. The time is - updated when any object header message changes according to - the system clock where the change was posted. |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -Reserved (zero) | -||
Seconds After UNIX Epoch | -
Field Name | -Description | -||||||
---|---|---|---|---|---|---|---|
Version |
- The version number is used for changes in the format of Object Modification Time - and is described here: -
|
- ||||||
Seconds After UNIX Epoch |
- A 32-bit unsigned integer value that stores the number of - seconds since 0 hours, 0 minutes, 0 seconds, January 1, 1970, - Coordinated Universal Time. |
-
Header Message Name: B-tree - ‘K’ Values | |
Header Message Type: 0x0013 | |
Length: Fixed | |
Status: Optional; may not be - repeated. | |
Description: | -This message retrieves non-default ‘K’ values - for internal and leaf nodes of a group or indexed storage v1 - B-trees. This message is only found in the superblock - extension. |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -Indexed Storage Internal Node K | -This space inserted only to align table nicely | -|
Group Internal Node K | -Group Leaf Node K | -
Field Name | -Description | -
---|---|
Version |
- The version number for this message. This document describes - version 0. - |
-
Indexed Storage Internal Node K |
- This is the node ‘K’ value for each internal node of an - indexed storage v1 B-tree. See the description of this field - in version 0 and 1 of the superblock as well the section on - v1 B-trees. - - |
-
Group Internal Node K |
- This is the node ‘K’ value for each internal node of a group - v1 B-tree. See the description of this field in version 0 and - 1 of the superblock as well as the section on v1 B-trees. - - |
-
Group Leaf Node K |
- This is the node ‘K’ value for each leaf node of a group v1 - B-tree. See the description of this field in version 0 and 1 - of the superblock as well as the section on v1 B-trees. - - |
-
The data for an object is stored separately from its header + information in the file and may not actually be located in the HDF5 + file itself if the header indicates that the data is stored externally. + The information for each record in the object is stored according to + the dimensionality of the object (indicated in the dataspace header + message). Multi-dimensional array data is stored in C order; in other + words, the “last” dimension changes fastest.
+ +Data whose elements are composed of atomic datatypes are stored + in IEEE format, unless they are specifically defined as being stored in + a different machine format with the architecture-type information from + the datatype header message. This means that each architecture will + need to [potentially] byte-swap data values into the internal + representation for that particular machine.
+ +Data with a variable-length datatype is stored in the global heap + of the HDF5 file. Global heap identifiers are stored in the data object + storage.
+ +Data whose elements are composed of reference datatypes are + stored in several different ways depending on the particular reference + type involved. Object pointers are just stored as the offset of the + object header being pointed to with the size of the pointer being the + same number of bytes as offsets in the file.
-Dataset region references are stored as a heap-ID which points to + the following information within the file-heap: an offset of the object + pointed to, number-type information (same format as header message), + dimensionality information (same format as header message), sub-set + start and end information (in other words, a coordinate location for + each), and field start and end names (in other words, a [pointer to + the] string indicating the first field included and a [pointer to the] + string name for the last field).
- -Header Message Name: Driver - Info | |
Header Message Type: 0x0014 | |
Length: Varies | |
Status: Optional; may not be - repeated. | |
- Description: | -This message contains information needed by the file driver - to reopen a file. This message is only found in the - superblock extension: see the - “Disk Format: Level 0C - Superblock Extension” - section for more information. For more information on the fields - in the driver info message, see the - “Disk Format : Level 0B - File Driver Info” - section; those who use the multi and family file drivers will - find this section particularly helpful. |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -This space inserted only to align table nicely | -||
Driver Identification |
- |||
Driver Information Size | -This space inserted only to align table nicely | -||
Driver Information (variable size) |
-
Field Name | -Description | -
---|---|
Version |
- The version number for this message. This document describes - version 0. - |
-
Driver Identification |
- This is an eight-byte ASCII string without null termination which - identifies the driver. - - |
-
Driver Information Size |
- The size in bytes of the Driver Information field of this - message. - |
-
Driver Information |
- Driver information is stored in a format defined by the file driver. - |
-
Header Message Name: Attribute - Info | |
Header Message Type: 0x0015 | |
Length: Varies | |
Status: Optional; may not be - repeated. | |
Description: | -This message stores information about the attributes on an - object, such as the maximum creation index for the attributes - created and the location of the attribute storage when the - attributes are stored “densely”. |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -Flags | -Maximum Creation Index (optional) | -|
Fractal Heap AddressO |
- |||
Attribute Name v2 B-tree AddressO |
- |||
Attribute Creation Order v2 B-tree AddressO (optional) |
-
Definitions of various terms used in this document are included + in this section.
-- | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - |
Field Name | -Description | -||||||||
---|---|---|---|---|---|---|---|---|---|
Version |
- The version number for this message. This document describes - version 0. - |
- ||||||||
Flags |
- This is the attribute index information flag with the - following definition: - -
|
- ||||||||
Maximum Creation Index |
- The is the maximum creation order index value for the - attributes on the object. -This field is present if bit 0 of Flags is set. - |
- ||||||||
Fractal Heap Address |
- This is the address of the fractal heap to store dense - attributes. - |
- ||||||||
Attribute Name v2 B-tree Address |
- This is the address of the version 2 B-tree to index the - names of densely stored attributes. - |
- ||||||||
Attribute Creation Order v2 B-tree Address |
- This is the address of the version 2 B-tree to index the - creation order of densely stored attributes. -This field is present if bit 1 of Flags is set. - |
- Term | +Definition | + -
0xffff...ff
.
+ 0xffff...ff
.
+ Header Message Name: Object Reference - Count | |
Header Message Type: 0x0016 | |
Length: Fixed | |
Status: Optional; may not be - repeated. | |
Description: | -This message stores the number of hard links (in groups or - objects) pointing to an object: in other words, its - reference count. |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -This space inserted only to align table nicely | -||
Reference count | -
Field Name | -Description | -
---|---|
Version |
- The version number for this message. This document describes - version 0. - |
-
Reference Count |
- The unsigned 32-bit integer is the reference count for the - object. This message is only present in “version 2” - (or later) object headers, and if not present those object - header versions, the reference count for the object is assumed - to be 1. - |
-
Header Message Name: File Space - Info | |
Header Message Type: 0x0018 | |
Length: Fixed | |
Status: Optional; may not be - repeated. | |
- Description: | -This message stores the file space management strategy (see - description below) that the library uses in handling file space - request for the file. It also contains the free-space section - threshold used by the library’s free-space managers for - the file. If the strategy is 1, this message also contains the - addresses of the file’s free-space managers which track - free space for each type of file space allocation. There are - six basic types of file space allocation: superblock, B-tree, - raw data, global heap, local heap, and object header. See the - description of Free-space - Manager as well the description of allocation types in - Appendix B. |
Format of Data: See the tables - below. |
byte | -byte | -byte | -byte | -
---|---|---|---|
Version | -Strategy | -ThresholdL | -|
Super-block Free-space Manager AddressO | -|||
B-tree Free-space Manager AddressO | -|||
Raw Data Free-space Manager AddressO | -|||
Global Heap Free-space Manager AddressO | -|||
Local Heap Free-space Manager AddressO | -|||
Object Header Free-space Manager AddressO | -
- | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - |
- | - (Items marked with an ‘L’ in the above table are of the size - specified in “Size of Lengths” field in the superblock.) - |
Field Name | -Description | -||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Version |
- This is the version number of this message. This document describes - version 0. - |
- ||||||||||
Strategy |
- This is the file space management strategy for the file. - There are four types of strategies: -
|
- ||||||||||
Threshold |
- This is the free-space section threshold. - The library’s free-space managers will track only - free-space sections with size greater than or equal to - threshold. The default is to track free-space - sections of all sizes. - |
- ||||||||||
Superblock Free-space Manager Address |
- This is the address of the free-space manager for - H5FD_MEM_SUPER allocation type. - - |
- ||||||||||
B-tree Free-space Manager Address |
- This is the address of the free-space manager for - H5FD_MEM_BTREE allocation type. - - |
- ||||||||||
Raw Data Free-space Manager Address |
- This is the address of the free-space manager for - H5FD_MEM_DRAW allocation type. - - |
- ||||||||||
Global Heap Free-space Manager Address |
- This is the address of the free-space manager for - H5FD_MEM_GHEAP allocation type. - - |
- ||||||||||
Local Heap Free-space Manager Address |
- This is the address of the free-space manager for - H5FD_MEM_LHEAP allocation type. - - |
- ||||||||||
Object Header Free-space Manager Address |
- This is the address of the free-space manager for - H5FD_MEM_OHDR allocation type. - - |
-
The data for an object is stored separately from its header - information in the file and may not actually be located in the HDF5 file - itself if the header indicates that the data is stored externally. The - information for each record in the object is stored according to the - dimensionality of the object (indicated in the dataspace header message). - Multi-dimensional array data is stored in C order; in other words, the - “last” dimension changes fastest.
- -Data whose elements are composed of atomic datatypes are stored in IEEE - format, unless they are specifically defined as being stored in a different - machine format with the architecture-type information from the datatype - header message. This means that each architecture will need to [potentially] - byte-swap data values into the internal representation for that particular - machine.
- -Data with a variable-length datatype is stored in the global heap - of the HDF5 file. Global heap identifiers are stored in the - data object storage.
- -Data whose elements are composed of reference datatypes are stored in - several different ways depending on the particular reference type involved. - Object pointers are just stored as the offset of the object header being - pointed to with the size of the pointer being the same number of bytes as - offsets in the file.
+Dataset region references are stored as a heap-ID which points to -the following information within the file-heap: an offset of the object -pointed to, number-type information (same format as header message), -dimensionality information (same format as header message), sub-set start -and end information (in other words, a coordinate location for each), -and field start and end names (in other words, a [pointer to the] string -indicating the first field included and a [pointer to the] string name -for the last field).
+Data of a compound datatype is stored as a contiguous stream of the items - in the structure, with each item formatted according to its datatype.
+There are other file memory allocation types that are mapped to + the above six basic allocation types because they are similar in + nature. The mapping is listed in the following table:
+Basic Allocation Type | +Mapping of Allocation Types to Basic Allocation Types | +
---|---|
H5FD_MEM_SUPER | +none | +
H5FD_MEM_BTREE | +H5FD_MEM_SOHM_INDEX | +
Term | -Definition | -
---|---|
H5FD_MEM_DRAW | +H5FD_MEM_FHEAP_HUGE_OBJ | +
Undefined Address | -The undefined
- address for a file is a file address with all bits
- set: in other words, 0xffff...ff . |
-
H5FD_MEM_GHEAP | +none | +
Unlimited Size | -The unlimited size
- for a size is a value with all bits set: in other words,
- 0xffff...ff . |
-
H5FD_MEM_LHEAP | +H5FD_MEM_FHEAP_DBLOCK, H5FD_MEM_FSPACE_SINFO | +
H5FD_MEM_OHDR | +H5FD_MEM_FHEAP_HDR, H5FD_MEM_FHEAP_IBLOCK, + H5FD_MEM_FSPACE_HDR, H5FD_MEM_SOHM_TABLE | +
Allocation types that are mapped to basic allocation types are + described below:
+Allocation Type | +Description | +
---|---|
H5FD_MEM_FHEAP_HDR | +File memory allocated for Fractal Heap Header. | +
Basic Allocation Type | -Description | -
---|---|
H5FD_MEM_SUPER | -File memory allocated for Superblock. | -
H5FD_MEM_BTREE | -File memory allocated for B-tree. | -
H5FD_MEM_DRAW | -File memory allocated for raw data. | -
H5FD_MEM_GHEAP | -File memory allocated for Global Heap. | -
H5FD_MEM_LHEAP | -File memory allocated for Local Heap. | -
H5FD_MEM_OHDR | -File memory allocated for Object Header. | -
There are other file memory allocation types that are mapped to the -above six basic allocation types because they are similar in nature. -The mapping is listed in the following table: -
+Basic Allocation Type | -Mapping of Allocation Types to Basic Allocation Types | -
---|---|
H5FD_MEM_SUPER | -none | -
H5FD_MEM_BTREE | -H5FD_MEM_SOHM_INDEX | -
H5FD_MEM_DRAW | -H5FD_MEM_FHEAP_HUGE_OBJ | -
H5FD_MEM_GHEAP | -none | -
H5FD_MEM_LHEAP | -H5FD_MEM_FHEAP_DBLOCK, H5FD_MEM_FSPACE_SINFO | -
H5FD_MEM_OHDR | -H5FD_MEM_FHEAP_HDR, H5FD_MEM_FHEAP_IBLOCK, H5FD_MEM_FSPACE_HDR, H5FD_MEM_SOHM_TABLE | -
Allocation types that are mapped to basic allocation types are described below: -
+Allocation Type | -Description | -
---|---|
H5FD_MEM_FHEAP_HDR | -File memory allocated for Fractal Heap Header. | -
H5FD_MEM_FHEAP_DBLOCK | -File memory allocated for Fractal Heap Direct Blocks. | -
H5FD_MEM_FHEAP_IBLOCK | -File memory allocated for Fractal Heap Indirect Blocks. | -
H5FD_MEM_FHEAP_HUGE_OBJ | -File memory allocated for huge objects in the fractal heap. | -
H5FD_MEM_FSPACE_HDR | -File memory allocated for Free-space Manager Header. | -
H5FD_MEM_FSPACE_SINFO | -File memory allocated for Free-space Section List of the free-space manager. | -
H5FD_MEM_SOHM_TABLE | -File memory allocated for Shared Object Header Message Table. | -
H5FD_MEM_SOHM_INDEX | -File memory allocated for Shared Message Record List. | -