summaryrefslogtreecommitdiffstats
path: root/hl/src/H5PT.h
diff options
context:
space:
mode:
authorJames Laird <jlaird@hdfgroup.org>2005-03-18 17:19:36 (GMT)
committerJames Laird <jlaird@hdfgroup.org>2005-03-18 17:19:36 (GMT)
commit349ca8daa9a1d0f094d716ea603d7d41ac14b862 (patch)
treed5180e62e013724f1c8972c018963bfe4da74e17 /hl/src/H5PT.h
parentf7ee415cdb4e6000636a55ff017c516d65ed64c1 (diff)
downloadhdf5-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.h125
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