summaryrefslogtreecommitdiffstats
path: root/src/H5Tprivate.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5Tprivate.h')
-rw-r--r--src/H5Tprivate.h64
1 files changed, 9 insertions, 55 deletions
diff --git a/src/H5Tprivate.h b/src/H5Tprivate.h
index ddbd42d..deccfc5 100644
--- a/src/H5Tprivate.h
+++ b/src/H5Tprivate.h
@@ -21,14 +21,14 @@
#include "H5Tpublic.h"
/* Private headers needed by this file */
-#include "H5private.h"
-#include "H5Gprivate.h" /*for H5G_entry_t */
-#include "H5Rprivate.h" /*for H5R_type_t */
-
-#define H5T_RESERVED_ATOMS 8
-#define H5T_NAMELEN 32 /*length of debugging name buffer */
+#include "H5private.h" /* Generic Functions */
+#include "H5Gprivate.h" /* Groups */
+#include "H5Rprivate.h" /* References */
+/* Forward references of package typedefs */
typedef struct H5T_t H5T_t;
+typedef struct H5T_stats_t H5T_stats_t;
+typedef struct H5T_path_t H5T_path_t;
/* How to copy a data type */
typedef enum H5T_copy_t {
@@ -37,34 +37,7 @@ typedef enum H5T_copy_t {
H5T_COPY_REOPEN
} H5T_copy_t;
-/* Statistics about a conversion function */
-typedef struct H5T_stats_t {
- unsigned ncalls; /*num calls to conversion function */
- hsize_t nelmts; /*total data points converted */
- H5_timer_t timer; /*total time for conversion */
-} H5T_stats_t;
-
-/* The data type conversion database */
-typedef struct H5T_path_t {
- char name[H5T_NAMELEN]; /*name for debugging only */
- H5T_t *src; /*source data type ID */
- H5T_t *dst; /*destination data type ID */
- H5T_conv_t func; /*data conversion function */
- hbool_t is_hard; /*is it a hard function? */
- H5T_stats_t stats; /*statistics for the conversion */
- H5T_cdata_t cdata; /*data for this function */
-} H5T_path_t;
-
-/*
- * VL types allowed.
- */
-typedef enum {
- H5T_VLEN_BADTYPE = -1, /* invalid VL Type */
- H5T_VLEN_SEQUENCE=0, /* VL sequence */
- H5T_VLEN_STRING, /* VL string */
- H5T_VLEN_MAXTYPE /* highest type (Invalid as true type) */
-} H5T_vlen_type_t;
-
+/* Location of VL information */
typedef enum {
H5T_VLEN_BADLOC = 0, /* invalid VL Type */
H5T_VLEN_MEMORY, /* VL data stored in memory */
@@ -72,27 +45,6 @@ typedef enum {
H5T_VLEN_MAXLOC /* highest type (Invalid as true type) */
} H5T_vlen_loc_t;
-/*
- * Internal data structure for passing information to H5T_vlen_get_buf_size
- */
-typedef struct {
- hid_t dataset_id; /* ID of the dataset we are working on */
- hid_t fspace_id; /* ID of the file dataset's dataspace we are working on */
- hid_t mspace_id; /* ID of the memory dataset's dataspace we are working on */
- void *fl_tbuf; /* Ptr to the temporary buffer we are using for fixed-length data */
- void *vl_tbuf; /* Ptr to the temporary buffer we are using for VL data */
- hid_t xfer_pid; /* ID of the dataset xfer property list */
- hsize_t size; /* Accumulated number of bytes for the selection */
-} H5T_vlen_bufsize_t;
-
-/*
- * Is the path the special no-op path? The no-op function can be set by the
- * application and there might be more than one no-op path in a
- * multi-threaded application if one thread is using the no-op path when some
- * other thread changes its definition.
- */
-#define H5T_IS_NOOP(P) ((P)->is_hard && 0==H5T_cmp((P)->src, (P)->dst))
-
/* Private functions */
H5_DLL herr_t H5TN_init_interface(void);
H5_DLL herr_t H5T_init(void);
@@ -111,6 +63,8 @@ H5_DLL htri_t H5T_is_immutable(H5T_t *dt);
H5_DLL htri_t H5T_is_named(H5T_t *dt);
H5_DLL H5T_path_t *H5T_path_find(const H5T_t *src, const H5T_t *dst,
const char *name, H5T_conv_t func, hid_t dxpl_id);
+H5_DLL hbool_t H5T_path_noop(const H5T_path_t *p);
+H5_DLL H5T_bkg_t H5T_path_bkg(const H5T_path_t *p);
H5_DLL herr_t H5T_convert(H5T_path_t *tpath, hid_t src_id, hid_t dst_id,
hsize_t nelmts, size_t buf_stride, size_t bkg_stride,
void *buf, void *bkg, hid_t dset_xfer_plist);