HDF5 documents and links Introduction to HDF5 HDF5 User Guide Other High-level API documents |
And in this document, the
HDF5 Reference Manual
H5DS H5IM H5LT H5PT H5TB H5 H5A H5D H5E H5F H5G H5I H5L H5O H5P H5R H5S H5T H5Z Tools Datatypes |
The HDF5 Packet Table API is designed to allow records to be appended to and read from a table. These records can be of fixed length (having an HDF5 datatype) or of variable-length, with each record potentially having a different size on disk. The Packet Table API with the H5PT prefix is not to be confused with the H5TB Table API (H5TB prefix). The H5TB APIs are stateless (Tables do not need to be opened or closed) but H5PT Packet Tables require less performance overhead. Also, H5TB Tables support insertions and deletions, while H5PT Packet Tables support variable-length records. H5TB functions should not be called on tables created with the H5PT API, or vice versa. Packet Tables are datasets in an HDF5 file, so while their contents should not be changed outside of the H5PT API calls, the datatypes of fixed-length Packet Tables can be queried using H5Dget_datatype(). Packet Tables can also be given attributes using the normal HDF5 APIs.
The following functions are part of the HDF5 Packet Table API.
The C Interfaces:
Creation and Opening Storage Table Index |
Retrieval Query Memory Management |
H5PTcreate_fl
creates and opens a
packet table named dset_name
attached to
the object specified by the identifier loc_id
.
It should be closed with H5PTclose
. loc_id
dset_name
dtype_id
chunk_size
H5PTcreate_vl
creates and opens a dataset named
dset_name
attached to
the object specified by the identifier loc_id
. This dataset can
then be written to as a packet table. It should be closed with
H5PTclose
. loc_id
dset_name
chunk_size
H5PTopen
opens an existing packet table in the file
or group specified by loc_id
. dset_name
is the name
of the packet table and is used to identify it in the file. This function is
used to open both fixed-length packet tables and variable-length packet tables.
The packet table should later be closed with H5PTclose
. loc_id
dset_name
H5PTclose
ends access to a packet table specified by
dataset_id
. dataset_id
H5PTappend
writes nrecords
packets to the end
of a packet table specified by table_id
. data
is a buffer containing the data to be written. For a packet table
holding fixed-length packets, this data should be in the packet table's
datatype. For a variable-length packet table, the data should be in the
form of hvl_t
structs. table_id
nrecords
data
get_next
can iterate through the packets in
order. H5PTcreate_index
initializes a packet
table's index, and should be called before using
get_next
.
The index must be initialized every time a packet table is created
or opened; this information is lost when the packet table is closed. table_id
get_next
can iterate through the packets in
order. H5PTset_index
sets this index to point
to a user-specified packet (the packets are zero-indexed). table_id
index
H5PTread_packets
reads nrecords
packets starting
at packet number start
from a packet table specified by
table_id
. data
is a buffer into which the
data should be read.hvl_t
structs, each
containing the length of the data and a pointer to it in memory.
The memory used by this data must be freed using
H5PTfree_vlen_readbuff
. table_id
start
nrecords
data
H5PTread_packets
reads nrecords
packets
starting with the "current index" from a packet table
specified by table_id
. The packet table's index
is set and reset with H5PTset_index
and
H5PTcreate_index
.
data
is a buffer into which the data should
be read.hvl_t
struct
containing the length of the data and a pointer to it in memory.
The memory used by this data must be freed using
H5PTfree_vlen_readbuff
. table_id
nrecords
data
H5PTget_num_packets
returns by reference the
number of packets in a packet table specified by
table_id
. table_id
nrecords
H5PTis_valid
returns a non-negative value if
table_id
corresponds to an open packet table,
and returns a negative value otherwise. table_id
table_id
is a valid packet table, otherwise returns a negative value.H5PTis_varlen
returns 1 (TRUE) if table_id
is a packet table containing variable-length records. It returns
0 (FALSE) if table_id
is a packet table containing
fixed-length records. If table_id
is not a packet table,
a negative value is returned. table_id
H5PTfree_vlen_readbuff
frees this memory, and should be called whenever packets are read
from a variable-length packet table. table_id
bufflen
buff
. buff
HDF5 documents and links Introduction to HDF5 HDF5 User Guide Other High-level API documents |
And in this document, the
HDF5 Reference Manual
H5DS H5IM H5LT H5PT H5TB H5 H5A H5D H5E H5F H5G H5I H5L H5O H5P H5R H5S H5T H5Z Tools Datatypes |