summaryrefslogtreecommitdiffstats
path: root/src/H5Tpublic.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>1999-06-04 22:27:28 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>1999-06-04 22:27:28 (GMT)
commit2a10e682a13244d5c61982445f2d6ec5bc990a36 (patch)
treefd25460dfb65d05ee3b3f19a5b11fe728a0e7adf /src/H5Tpublic.h
parentdf96f4362a0872e832cb0b995e209da4e315cb9d (diff)
downloadhdf5-2a10e682a13244d5c61982445f2d6ec5bc990a36.zip
hdf5-2a10e682a13244d5c61982445f2d6ec5bc990a36.tar.gz
hdf5-2a10e682a13244d5c61982445f2d6ec5bc990a36.tar.bz2
[svn-r1305] Checkpointing the VL datatype code. I believe the core functionality is here,
accessed with H5Tvlen_create, but I need to start writing tests now. Also the more esoteric API calls (such as H5Tget_vlen_buf_size and the memory management calls) aren't implemented yet.
Diffstat (limited to 'src/H5Tpublic.h')
-rw-r--r--src/H5Tpublic.h19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/H5Tpublic.h b/src/H5Tpublic.h
index 4b76131..db5e2a6 100644
--- a/src/H5Tpublic.h
+++ b/src/H5Tpublic.h
@@ -23,6 +23,7 @@
#define HOFFSET(S,M) (offsetof(S,M))
/* These are the various classes of data types */
+/* If this goes over 16 types (0-15), the file format will need to change) */
typedef enum H5T_class_t {
H5T_NO_CLASS = -1, /*error */
H5T_INTEGER = 0, /*integer types */
@@ -33,9 +34,10 @@ typedef enum H5T_class_t {
H5T_OPAQUE = 5, /*opaque types */
H5T_COMPOUND = 6, /*compound types */
H5T_REFERENCE = 7, /*reference types */
- H5T_ENUM = 8, /*enumeration types */
+ H5T_ENUM = 8, /*enumeration types */
+ H5T_VLEN = 9, /*Variable-Length types */
- H5T_NCLASSES = 9 /*this must be last */
+ H5T_NCLASSES /*this must be last */
} H5T_class_t;
/* Byte orders */
@@ -148,6 +150,12 @@ typedef enum H5T_pers_t {
H5T_PERS_SOFT = 1 /*soft conversion function */
} H5T_pers_t;
+/* Variable Length Datatype struct */
+typedef struct {
+ size_t len; /* Length of VL data (in base type units) */
+ void *p; /* Pointer to VL data */
+} hvl_t;
+
/* All data type conversion functions are... */
typedef herr_t (*H5T_conv_t) (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
size_t nelmts, void *buf, void *bkg);
@@ -209,8 +217,8 @@ __DLLVAR__ hid_t H5T_IEEE_F64LE_g;
#define H5T_STD_B32LE (H5open(), H5T_STD_B32LE_g)
#define H5T_STD_B64BE (H5open(), H5T_STD_B64BE_g)
#define H5T_STD_B64LE (H5open(), H5T_STD_B64LE_g)
-#define H5T_STD_REF_OBJ (H5open(), H5T_STD_REF_OBJ_g)
-#define H5T_STD_REF_DSETREG (H5open(), H5T_STD_REF_DSETREG_g)
+#define H5T_STD_REF_OBJ (H5open(), H5T_STD_REF_OBJ_g)
+#define H5T_STD_REF_DSETREG (H5open(), H5T_STD_REF_DSETREG_g)
__DLLVAR__ hid_t H5T_STD_I8BE_g;
__DLLVAR__ hid_t H5T_STD_I8LE_g;
__DLLVAR__ hid_t H5T_STD_I16BE_g;
@@ -401,6 +409,9 @@ __DLL__ hid_t H5Tenum_nameof(hid_t type, void *value, char *name/*out*/,
__DLL__ hid_t H5Tenum_valueof(hid_t type, const char *name,
void *value/*out*/);
+/* Operations defined on variable-length data types */
+__DLL__ hid_t H5Tvlen_create(hid_t base_id);
+
/* Operations defined on opaque data types */
__DLL__ herr_t H5Tset_tag(hid_t type, const char *tag);
__DLL__ char *H5Tget_tag(hid_t type);