1997-07-31 05:17:56 +08:00
|
|
|
/****************************************************************************
|
|
|
|
* NCSA HDF *
|
|
|
|
* Software Development Group *
|
|
|
|
* 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. *
|
|
|
|
* *
|
|
|
|
****************************************************************************/
|
|
|
|
|
|
|
|
/* $Id$ */
|
|
|
|
|
|
|
|
/*
|
|
|
|
* This file contains private information about the H5T module
|
|
|
|
*/
|
|
|
|
|
1997-08-16 00:51:34 +08:00
|
|
|
#ifndef _H5Tprivate_H
|
|
|
|
#define _H5Tprivate_H
|
|
|
|
#include <H5Tpublic.h>
|
|
|
|
|
|
|
|
/* Private headers needed by this file */
|
|
|
|
#include <H5private.h>
|
|
|
|
#include <H5Cprivate.h> /*for hobjtype_t defn*/
|
1997-07-31 05:17:56 +08:00
|
|
|
|
|
|
|
#define H5T_RESERVED_ATOMS 8
|
|
|
|
|
|
|
|
/* Structure for storing information about a field in a compound datatype */
|
|
|
|
typedef struct {
|
|
|
|
char *name; /* Name of the field */
|
|
|
|
uintn name_off; /* Offset of name in global small-data heap */
|
|
|
|
uintn struct_off; /* Offset of field within structure */
|
|
|
|
h5_atomic_type_t dt; /* Datatype of the field */
|
1997-09-24 23:32:46 +08:00
|
|
|
hid_t dim_id; /* dimensionality ID of the field */
|
1997-07-31 05:17:56 +08:00
|
|
|
} h5_field_info_t;
|
|
|
|
|
|
|
|
/* Structure for storing information about a compound datatype */
|
|
|
|
typedef struct {
|
|
|
|
uintn n; /* Number of fields */
|
|
|
|
uintn mem_size; /* Size of the compound structure in memory */
|
|
|
|
uintn disk_size; /* Size of the compound structure on disk */
|
|
|
|
h5_field_info_t *flist; /* List of fields in the compound object */
|
|
|
|
} h5_compound_info_t;
|
|
|
|
|
|
|
|
/* Structure for storing information any datatype */
|
|
|
|
typedef struct {
|
1997-08-07 00:00:56 +08:00
|
|
|
h5_atomic_type_t dt; /* Base type of this object */
|
1997-07-31 05:17:56 +08:00
|
|
|
char *name; /* Name of datatype */
|
|
|
|
h5_compound_info_t *ci; /* Information for compound datatypes */
|
|
|
|
} h5_datatype_t;
|
|
|
|
|
1997-08-16 00:51:34 +08:00
|
|
|
/* Private functions */
|
1997-10-16 00:33:27 +08:00
|
|
|
herr_t H5T_init(void);
|
1997-09-24 23:32:46 +08:00
|
|
|
hid_t H5T_create(hid_t owner_id, hobjtype_t type, const char *name);
|
1997-08-30 03:26:32 +08:00
|
|
|
hbool_t H5T_is_atomic(h5_datatype_t *type);
|
1997-09-12 23:32:33 +08:00
|
|
|
uintn H5T_size(h5_datatype_t *dt, hbool_t mem_flag);
|
1997-10-09 04:38:12 +08:00
|
|
|
intn H5T_arch(h5_datatype_t *dt);
|
1997-09-24 23:32:46 +08:00
|
|
|
herr_t H5T_release(hid_t oid);
|
1997-07-31 05:17:56 +08:00
|
|
|
|
1997-08-16 00:51:34 +08:00
|
|
|
#endif
|