diff options
author | James Laird <jlaird@hdfgroup.org> | 2005-03-18 17:19:36 (GMT) |
---|---|---|
committer | James Laird <jlaird@hdfgroup.org> | 2005-03-18 17:19:36 (GMT) |
commit | 349ca8daa9a1d0f094d716ea603d7d41ac14b862 (patch) | |
tree | d5180e62e013724f1c8972c018963bfe4da74e17 /hl/src/H5PT.h | |
parent | f7ee415cdb4e6000636a55ff017c516d65ed64c1 (diff) | |
download | hdf5-349ca8daa9a1d0f094d716ea603d7d41ac14b862.zip hdf5-349ca8daa9a1d0f094d716ea603d7d41ac14b862.tar.gz hdf5-349ca8daa9a1d0f094d716ea603d7d41ac14b862.tar.bz2 |
[svn-r10234] Purpose:
Added Packet Table to high-level APIs
Description:
The Packet Table is an API that allows the user to append records
("packets") to a table, and read the back again. It supports
fixed-length records with a defined datatype and variable-length
records. It also supports a "current record" index to track the
user's position in the table.
Solution:
The Packet Table code lives in hl/src, and its tests in hl/test.
Some code is shared between the H5TB table and the H5PT Packet Table
in the form of functions in H5HL_private.c.
Some documentation exists for a previous version of the API. Updated
documentation and C++ wrapper API coming soon.
Platforms tested:
sleipnir, eirene, copper, modi4
Diffstat (limited to 'hl/src/H5PT.h')
-rw-r--r-- | hl/src/H5PT.h | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/hl/src/H5PT.h b/hl/src/H5PT.h new file mode 100644 index 0000000..e7cceb8 --- /dev/null +++ b/hl/src/H5PT.h @@ -0,0 +1,125 @@ +/**************************************************************************** + * NCSA HDF * + * Scientific Data Technologies * + * National Center for Supercomputing Applications * + * University of Illinois at Urbana-Champaign * + * 605 E. Springfield, Champaign IL 61820 * + * * + * For conditions of distribution and use, see the accompanying * + * hdf/COPYING file. * + * * + ****************************************************************************/ + + +#ifndef _H5PT_H +#define _H5PT_H + +#include <hdf5.h> + +#if 0 +#define H5_PT_DEBUG +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/*------------------------------------------------------------------------- + * + * Create/Open/Close functions + * + *------------------------------------------------------------------------- + */ + +hid_t H5PTcreate_fl ( hid_t loc_id, + const char *dset_name, + hid_t dtype_id, + hsize_t chunk_size ); + +hid_t H5PTcreate_vl ( hid_t loc_id, + const char *dset_name, + hsize_t chunk_size ); + +hid_t H5PTopen( hid_t loc_id, + char *dset_name ); + +herr_t H5PTclose( hid_t table_id ); + + +/*------------------------------------------------------------------------- + * + * Write functions + * + *------------------------------------------------------------------------- + */ + +herr_t H5PTappend( hid_t table_id, + hsize_t nrecords, + const void * data ); + +herr_t H5PTappend_single_packet( hid_t table_id, + const void * data ); + +/*------------------------------------------------------------------------- + * + * Read functions + * + *------------------------------------------------------------------------- + */ + + +herr_t H5PTget_next( hid_t table_id, + hsize_t nrecords, + void * data ); + +herr_t H5PTread_packets( hid_t table_id, + hsize_t start, + hsize_t nrecords, + void *data ); + +/*------------------------------------------------------------------------- + * + * Inquiry functions + * + *------------------------------------------------------------------------- + */ + + +herr_t H5PTget_num_records( hid_t dataset_id, + hsize_t *nrecords ); + +herr_t H5PTget_num_packets( hid_t table_id, + hsize_t *nrecords ); + +herr_t H5PTis_valid( hid_t table_id ); + +herr_t H5PTis_varlen( hid_t table_id ); + +/*------------------------------------------------------------------------- + * + * Packet Table "current index" functions + * + *------------------------------------------------------------------------- + */ + +herr_t H5PTcreate_index( hid_t table_id ); + +herr_t H5PTset_index( hid_t table_id, + hsize_t pt_index ); + +/*------------------------------------------------------------------------- + * + * Memory Management functions + * + *------------------------------------------------------------------------- + */ + +herr_t H5PTfree_vlen_readbuff( hid_t table_id, + hsize_t bufflen, + void * buff ); + +#ifdef __cplusplus +} +#endif + +#endif |