-Table 1. Attributes of an Image Dataset
-
-Attribute Name |
-Required Optional |
-Type |
-String Size |
-Value |
-Description |
-
-
-CLASS |
-Required |
-String |
-5 |
-"TABLE" |
-This attribute is type #H5T_C_S1, with size 5. For all Tables, the value of this attribute is
-TABLE. This attribute identifies this data set as intended to be interpreted as Table that
-conforms to the specifications on this page. |
-
-
-VERSION |
-Required |
-String |
-3 |
-"0.2" |
-This attribute is of type #H5T_C_S1, with size corresponding to the length of the version string.
-This attribute identifies the version number of this specification to which it conforms. The current
-version number is "0.2". |
-
-
-TITLE |
-Optional |
-String |
- |
- |
-The TITLE is an optional String that is to be used as the informative title of the whole table.
-The TITLE is set with the parameter table_title of the function #H5TBmake_table. |
-
-
-FIELD_(n)_NAME |
-Required |
-String |
- |
- |
-The FIELD_(n)_NAME is an optional String that is to be used as the informative title of column n
-of the table. For each of the fields the word FIELD_ is concatenated with the zero based field (n)
-index together with the name of the field. |
-
-
-FIELD_(n)_FILL |
-Optional |
-String |
- |
- |
-The FIELD_(n)_FILL is an optional String that is the fill value for column n of the table.
-For each of the fields the word FIELD_ is concatenated with the zero based field (n) index
-together with the fill value, if present. This value is written only when a fill value is defined
-for the table. |
-
-
-
-The following section of code shows the calls necessary to the creation of a table.
-\code
-// Create a new HDF5 file using default properties.
-file_id = H5Fcreate("my_table.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
-
-// Call the make table function
-H5TBmake_table("Table Title", file_id, "Table1", NFIELDS, NRECORDS, dst_size, field_names, dst_offset, field_type, chunk_size, fill_data, compress, p_data);
-
-// Close the file.
-status = H5Fclose(file_id);
-\endcode
-
-For more information see the @ref H5TB reference manual page and the @ref H5TB_UG, which includes examples.
-
->>>>>>> c7cb5ae Convert ImageSpec html file to doxygen (#5163)
-
-*/
diff --git a/doxygen/dox/TechnicalNotes.dox b/doxygen/dox/TechnicalNotes.dox
index 3e3a0edfb7d..47ba029cc92 100644
--- a/doxygen/dox/TechnicalNotes.dox
+++ b/doxygen/dox/TechnicalNotes.dox
@@ -24,1034 +24,6 @@
*/
-<<<<<<< Upstream, based on branch 'develop-doxy-fformat' of https://github.com/byrnHDF/hdf5.git
-=======
-/** \page VFL HDF5 Virtual File Layer
-
-\section sec_vfl_intro Introduction
-The HDF5 file format describes how HDF5 data structures and dataset raw data are mapped
-to a linear format address space and the HDF5 library implements that bidirectional mapping
-in terms of an API. However, the HDF5 format specifications do not indicate how the format
-address space is mapped onto storage and HDF (version 5 and earlier) simply mapped the format
-address space directly onto a single file by convention.
-
-Since early versions of HDF5 it became apparent that users want the ability to map the
-format address space onto different types of storage (a single file, multiple files, local
-memory, global memory, network distributed global memory, a network protocol, etc.) with
-various types of maps. For instance, some users want to be able to handle very large format
-address spaces on operating systems that support only 2GB files by partitioning the format
-address space into equal-sized parts each served by a separate file. Other users want the
-same multi-file storage capability but want to partition the address space according to
-purpose (raw data in one file, object headers in another, global heap in a third, etc.)
-in order to improve I/O speeds.
-
-In fact, the number of storage variations is probably larger than the number of methods
-that the HDF5 team is capable of implementing and supporting. Therefore, a Virtual File
-Layer API is being implemented which will allow application teams or departments to design
-and implement their own mapping between the HDF5 format address space and storage, with each
-mapping being a separate file driver (possibly written in terms of other file drivers). The
-HDF5 team will provide a small set of useful file drivers which will also serve as examples
-for those who which to write their own:
-
-
-Function |
-Description |
-
-
-static hsize_t sb_size (H5FD_t *file) |
-The sb_size function returns the number of bytes necessary to encode
-information needed later if the file is reopened. |
-
-
-static herr_t sb_encode (H5FD_t *file, char *name, unsigned char *buf) |
-The sb_encode function encodes information from the file into buffer buf
-allocated by the caller. It also writes an 8-character (plus null termination) into
-the name argument, which should be a unique identification for the driver. |
-
-
-static herr_t sb_decode (H5FD_t *file, const char *name, const unsigned char *buf) |
-The sb_decode function looks at the name decodes data from the buffer buf and
-updates the file argument with the new information, advancing *p in the process. |
-
-
-The part of this which is somewhat tricky is that the file must be readable before the
-superblock information is decoded. File access modes fall outside the scope of the HDF5
-file format, but they are placed inside the boot block for convenience.(File access modes
-do not describe data, but rather describe how the HDF5 format address space is mapped to
-the underlying file(s). Thus, in general the mapping must be known before the file
-superblock can be read. However, the user usually knows enough about the mapping for
-the superblock to be readable and once the superblock is read the library can fill
-in the missing parts of the mapping.)
-
-\section sec_vfl_address Address Space Functions
-HDF5 does not assume that a file is a linear address space of bytes. Instead, the library
-will call functions to allocate and free portions of the HDF5 format address space, which
-in turn map onto functions in the file driver to allocate and free portions of file address
-space. The library tells the file driver how much format address space it wants to allocate
-and the driver decides what format address to use and how that format address is mapped
-onto the file address space. Usually the format address is chosen so that the file address
-can be calculated in constant time for data I/O operations (which are always specified by format addresses).
-
-\subsection subsec_vfl_address_blk Userblock and Superblock
-The HDF5 format allows an optional userblock to appear before the actual HDF5 data in such
-a way that if the userblock is sucked out of the file and everything remaining is
-shifted downward in the file address space, then the file is still a valid HDF5 file.
-The userblock size can be zero or any multiple of two greater than or equal to 512 and
-the file superblock begins immediately after the userblock.
-
-HDF5 allocates space for the userblock and superblock by calling an allocation function
-defined below, which must return a chunk of memory at format address zero on the first call.
-
-\subsection subsec_vfl_address_alloc Allocatiion of Format Regions
-The library makes many types of allocation requests:
-
-
-const char *name |
-A pointer to a constant, null-terminated driver name to be used for debugging purposes. |
-
-
-size_t fapl_size |
-The size in bytes of the file access mode structure or zero if the driver supplies a copy function
-or doesn't define the structure. |
-
-
-void *(*fapl_copy)(const void *fapl) |
-An optional function which copies a driver-defined file access mode structure. This field takes
-precedence over fm_size when both are defined. |
-
-
-void (*fapl_free)(void *fapl) |
-An optional function to free the driver-defined file access mode structure. If null, then the
-library calls the C free function to free the structure. |
-
-
-size_t dxpl_size |
-The size in bytes of the data transfer mode structure or zero if the driver supplies a copy
-function or doesn't define the structure. |
-
-
-void *(*dxpl_copy)(const void *dxpl) |
-An optional function which copies a driver-defined data transfer mode structure. This field
-takes precedence over xm_size when both are defined. |
-
-
-void (*dxpl_free)(void *dxpl) |
-An optional function to free the driver-defined data transfer mode structure. If null, then
-the library calls the C free function to free the structure. |
-
-
-H5FD_t *(*open)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr) |
-The function which opens or creates a new file. |
-
-
-herr_t (*close)(H5FD_t *file) |
-The function which ends access to a file. |
-
-
-int (*cmp)(const H5FD_t *f1, const H5FD_t *f2) |
-An optional function to determine whether two open files have the same key. If this function
-is not present then the library assumes that two files will never be the same. |
-
-
-int (*query)(const H5FD_t *f, unsigned long *flags) |
-An optional function to determine which library optimizations a driver can support. |
-
-
-haddr_t (*alloc)(H5FD_t *file, H5FD_mem_t type, hsize_t size) |
-An optional function to allocate space in the file. |
-
-
-herr_t (*free)(H5FD_t *file, H5FD_mem_t type, haddr_t addr, hsize_t size) |
-An optional function to free space in the file. |
-
-
-haddr_t (*get_eoa)(H5FD_t *file) |
-A function to query how much of the format address space has been allocated. |
-
-
-herr_t (*set_eoa)(H5FD_t *file, haddr_t) |
-A function to set the end of address space. |
-
-
-haddr_t (*get_eof)(H5FD_t *file) |
-A function to return the current end-of-file marker value. |
-
-
-herr_t (*read)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, hsize_t size, void *buffer) |
-A function to read data from a file. |
-
-
-herr_t (*write)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, hsize_t size, const void *buffer) |
-A function to write data to a file. |
-
-
-herr_t (*flush)(H5FD_t *file) |
-A function which flushes cached data to the file. |
-
-
-H5FD_mem_t fl_map[H5FD_MEM_NTYPES] |
-An array which maps a file allocation request type to a free list. |
-
-
-
-Example: The sec2 driver would be registered as:
-\code
-static const H5FD_class_t H5FD_sec2_g = {
- "sec2", /*name */
- MAXADDR, /*maxaddr */
- NULL, /*sb_size */
- NULL, /*sb_encode */
- NULL, /*sb_decode */
- 0, /*fapl_size */
- NULL, /*fapl_get */
- NULL, /*fapl_copy */
- NULL, /*fapl_free */
- 0, /*dxpl_size */
- NULL, /*dxpl_copy */
- NULL, /*dxpl_free */
- H5FD_sec2_open, /*open */
- H5FD_sec2_close, /*close */
- H5FD_sec2_cmp, /*cmp */
- H5FD_sec2_query, /*query */
- NULL, /*alloc */
- NULL, /*free */
- H5FD_sec2_get_eoa, /*get_eoa */
- H5FD_sec2_set_eoa, /*set_eoa */
- H5FD_sec2_get_eof, /*get_eof */
- H5FD_sec2_read, /*read */
- H5FD_sec2_write, /*write */
- H5FD_sec2_flush, /*flush */
- H5FD_FLMAP_SINGLE, /*fl_map */
-};
-
-hid_t
-H5FD_sec2_init(void)
-{
- if (!H5FD_SEC2_g) {
- H5FD_SEC2_g = H5FDregister(&H5FD_sec2_g);
- }
- return H5FD_SEC2_g;
-}
-\endcode
-
-A driver can be removed from the library by unregistering it
-