summaryrefslogtreecommitdiffstats
path: root/src/H5Tpublic.h
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-01-09 17:49:23 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-01-09 17:49:23 (GMT)
commit1063eb8a1ea0cbdbdc4244f0627b94b3096d65ab (patch)
treebb88c2ea66aebd882d50d7cc2ce258d5e3c51c44 /src/H5Tpublic.h
parent159fa7a232e1961940b83f035f4c27338d26337e (diff)
downloadhdf5-1063eb8a1ea0cbdbdc4244f0627b94b3096d65ab.zip
hdf5-1063eb8a1ea0cbdbdc4244f0627b94b3096d65ab.tar.gz
hdf5-1063eb8a1ea0cbdbdc4244f0627b94b3096d65ab.tar.bz2
[svn-r152] Changes since 19980107
---------------------- ./html/Datatypes.html Updated to match code. ./src/H5Odtype.c ./src/H5Oprivate.h ./src/H5Tpkg.h ./src/H5detect.c Changed H5T_FIXED to H5T_INTEGER. ./src/H5T.c ./src/H5Tprivate.h ./src/H5Tpublic.h ./test/dtypes.c Implemented lots of type properties. ./src/H5detect.c ./src/H5Tpublic.h It is no longer necessary to call H5init() before using a predefined data type.
Diffstat (limited to 'src/H5Tpublic.h')
-rw-r--r--src/H5Tpublic.h93
1 files changed, 72 insertions, 21 deletions
diff --git a/src/H5Tpublic.h b/src/H5Tpublic.h
index e2c1163..907aff1 100644
--- a/src/H5Tpublic.h
+++ b/src/H5Tpublic.h
@@ -26,9 +26,9 @@
/* These are the various classes of data types */
typedef enum H5T_class_t {
H5T_NO_CLASS =-1, /*error */
- H5T_FIXED =0, /*fixed-point types */
+ H5T_INTEGER =0, /*integer types */
H5T_FLOAT =1, /*floating-point types */
- H5T_DATE =2, /*date and time types */
+ H5T_TIME =2, /*date and time types */
H5T_STRING =3, /*character string types */
H5T_BITFIELD =4, /*bit field types */
H5T_OPAQUE =5, /*opaque types */
@@ -42,13 +42,16 @@ typedef enum H5T_order_t {
H5T_ORDER_BE =1, /*bit endian */
H5T_ORDER_VAX =2, /*VAX mixed endian */
H5T_ORDER_NONE =3 /*no particular order (strings, bits,..)*/
+ /*H5T_ORDER_NONE must be last*/
} H5T_order_t;
-/* Types of fixed-point sign schemes */
+/* Types of integer sign schemes */
typedef enum H5T_sign_t {
H5T_SGN_ERROR =-1, /*error */
H5T_SGN_NONE =0, /*this is an unsigned type */
- H5T_SGN_2 =1 /*two's complement */
+ H5T_SGN_2 =1, /*two's complement */
+
+ H5T_SGN_N =2 /*this must be last */
} H5T_sign_t;
/* Floating-point normalization schemes */
@@ -57,6 +60,7 @@ typedef enum H5T_norm_t {
H5T_NORM_IMPLIED =0, /*msb of mantissa isn't stored, always 1*/
H5T_NORM_MSBSET =1, /*msb of mantissa is always 1 */
H5T_NORM_NONE =2 /*not normalized */
+ /*H5T_NORM_NONE must be last*/
} H5T_norm_t;
/* Character set to use for text strings */
@@ -72,39 +76,86 @@ typedef enum H5T_str_t {
H5T_STR_SPACE =1 /*pad with spaces like in Fortran */
} H5T_str_t;
+/* Type of padding to use in other atomic types */
+typedef enum H5T_pad_t {
+ H5T_PAD_ERROR =-1, /*error */
+ H5T_PAD_ZERO =0, /*always set to zero */
+ H5T_PAD_ONE =1, /*always set to one */
+ H5T_PAD_BACKGROUND =2, /*set to background value */
+
+ H5T_NPAD =3 /*THIS MUST BE LAST */
+} H5T_pad_t;
-
-#define H5T_PAD_ZERO (-1) /*pad with all zeros */
-#define H5T_PAD_ONE (-2) /*pad with all ones */
-#define H5T_PAD_FROM(X) (X) /*pad with value of bit X */
+#define HOFFSET(S,M) ((const char*)&S.M-(const char*)&S)
+#define HPOFFSET(P,M) ((const char*)&(P->M)-(const char*)P)
/* The predefined types */
-extern hid_t H5T_NATIVE_CHAR;
-extern hid_t H5T_NATIVE_UCHAR;
-extern hid_t H5T_NATIVE_SHORT;
-extern hid_t H5T_NATIVE_USHORT;
-extern hid_t H5T_NATIVE_INT;
-extern hid_t H5T_NATIVE_UINT;
-extern hid_t H5T_NATIVE_LONG;
-extern hid_t H5T_NATIVE_ULONG;
-extern hid_t H5T_NATIVE_FLOAT;
-extern hid_t H5T_NATIVE_DOUBLE;
+#define H5T_NATIVE_CHAR (H5init(), H5T_NATIVE_CHAR_g)
+#define H5T_NATIVE_UCHAR (H5init(), H5T_NATIVE_UCHAR_g)
+#define H5T_NATIVE_SHORT (H5init(), H5T_NATIVE_SHORT_g)
+#define H5T_NATIVE_USHORT (H5init(), H5T_NATIVE_USHORT_g)
+#define H5T_NATIVE_INT (H5init(), H5T_NATIVE_INT_g)
+#define H5T_NATIVE_UINT (H5init(), H5T_NATIVE_UINT_g)
+#define H5T_NATIVE_LONG (H5init(), H5T_NATIVE_LONG_g)
+#define H5T_NATIVE_ULONG (H5init(), H5T_NATIVE_ULONG_g)
+#define H5T_NATIVE_FLOAT (H5init(), H5T_NATIVE_FLOAT_g)
+#define H5T_NATIVE_DOUBLE (H5init(), H5T_NATIVE_DOUBLE_g)
+
+extern hid_t H5T_NATIVE_CHAR_g;
+extern hid_t H5T_NATIVE_UCHAR_g;
+extern hid_t H5T_NATIVE_SHORT_g;
+extern hid_t H5T_NATIVE_USHORT_g;
+extern hid_t H5T_NATIVE_INT_g;
+extern hid_t H5T_NATIVE_UINT_g;
+extern hid_t H5T_NATIVE_LONG_g;
+extern hid_t H5T_NATIVE_ULONG_g;
+extern hid_t H5T_NATIVE_FLOAT_g;
+extern hid_t H5T_NATIVE_DOUBLE_g;
#ifdef __cplusplus
extern "C" {
#endif
+/* Operations defined on all data types */
hid_t H5Tcreate (H5T_class_t type, size_t size);
hid_t H5Tcopy (hid_t type_id);
herr_t H5Tclose (hid_t type_id);
hbool_t H5Tequal (hid_t type1_id, hid_t type2_id);
+/* Operations defined on compound data types */
+herr_t H5Tinsert (hid_t parent_id, const char *name, off_t offset,
+ hid_t member_id);
+herr_t H5Tpack (hid_t type_id);
+
+/* Querying property values */
H5T_class_t H5Tget_class (hid_t type_id);
size_t H5Tget_size (hid_t type_id);
+H5T_order_t H5Tget_order (hid_t type_id);
+size_t H5Tget_precision (hid_t type_id);
+size_t H5Tget_offset (hid_t type_id);
+H5T_sign_t H5Tget_sign (hid_t type_id);
+herr_t H5Tget_fields (hid_t type_id, size_t *spos/*out*/,
+ size_t *epos/*out*/, size_t *esize/*out*/,
+ size_t *mpos/*out*/, size_t *msize/*out*/);
+size_t H5Tget_ebias (hid_t type_id);
+H5T_norm_t H5Tget_norm (hid_t type_id);
intn H5Tget_nmembers (hid_t type_id);
-
-herr_t H5Tinsert_member (hid_t parent_id, const char *name, off_t offset,
- hid_t member_id);
+char *H5Tget_member_name (hid_t type_id, int membno);
+size_t H5Tget_member_offset (hid_t type_id, int membno);
+int H5Tget_member_dims (hid_t type_id, int membno,
+ int dims[]/*out*/, int perm[]/*out*/);
+hid_t H5Tget_member_type (hid_t type_id, int membno);
+
+/* Setting property values */
+herr_t H5Tset_size (hid_t type_id, size_t size);
+herr_t H5Tset_order (hid_t type_id, H5T_order_t order);
+herr_t H5Tset_precision (hid_t type_id, size_t prec);
+herr_t H5Tset_offset (hid_t type_id, size_t offset);
+herr_t H5Tset_sign (hid_t type_id, H5T_sign_t sign);
+herr_t H5Tset_fields (hid_t type_id, size_t spos, size_t epos, size_t esize,
+ size_t mpos, size_t msize);
+herr_t H5Tset_ebias (hid_t type_id, size_t ebias);
+herr_t H5Tset_norm (hid_t type_id, H5T_norm_t norm);
#ifdef __cplusplus