diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 1999-06-04 22:27:28 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 1999-06-04 22:27:28 (GMT) |
commit | 2a10e682a13244d5c61982445f2d6ec5bc990a36 (patch) | |
tree | fd25460dfb65d05ee3b3f19a5b11fe728a0e7adf /src/H5Tpublic.h | |
parent | df96f4362a0872e832cb0b995e209da4e315cb9d (diff) | |
download | hdf5-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.h | 19 |
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); |