From 7921315a33816b58c7d055d4744df691c943eaa8 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Thu, 18 Jan 2001 18:30:23 -0500 Subject: [svn-r3304] Purpose: Code update Description: Remove ragged array code & tests from library before release. Platforms tested: FreeBSD 4.2 (hawkwind) --- MANIFEST | 4 - RELEASE | 3 + examples/Dependencies | 10 - pablo/Makefile.in | 2 +- pablo/ProcTrace.inc | 28 -- src/Dependencies | 47 +- src/H5.c | 10 - src/H5E.c | 1 - src/H5Epublic.h | 1 - src/H5G.c | 14 - src/H5Gpublic.h | 2 +- src/H5Iprivate.h | 1 - src/H5Ipublic.h | 1 - src/H5RA.c | 1290 ------------------------------------------------- src/H5RAprivate.h | 29 -- src/H5RApublic.h | 29 -- src/H5private.h | 1 - src/Makefile.in | 6 +- src/hdf5.h | 1 - test/Dependencies | 82 ---- test/Makefile.in | 9 +- test/ragged.c | 700 --------------------------- testpar/Dependencies | 5 - testpar/Makefile.in | 2 +- tools/Dependencies | 8 - tools/h5ls.c | 30 -- 26 files changed, 13 insertions(+), 2303 deletions(-) delete mode 100644 src/H5RA.c delete mode 100644 src/H5RAprivate.h delete mode 100644 src/H5RApublic.h delete mode 100644 test/ragged.c diff --git a/MANIFEST b/MANIFEST index 2bd5ebc..6baa988 100644 --- a/MANIFEST +++ b/MANIFEST @@ -770,9 +770,6 @@ ./src/H5R.c ./src/H5Rprivate.h ./src/H5Rpublic.h -./src/H5RA.c -./src/H5RAprivate.h -./src/H5RApublic.h ./src/H5S.c ./src/H5Sall.c ./src/H5Shyper.c @@ -839,7 +836,6 @@ ./test/mtime.c ./test/ohdr.c ./test/overhead.c -./test/ragged.c ./test/space_overflow.c _DO_NOT_DISTRIBUTE_ ./test/gen_old_array.c _DO_NOT_DISTRIBUTE_ ./test/gen_new_array.c _DO_NOT_DISTRIBUTE_ diff --git a/RELEASE b/RELEASE index b252bc5..b91d1ca 100644 --- a/RELEASE +++ b/RELEASE @@ -336,6 +336,9 @@ Bug Fixes since HDF5-1.4.0-beta2 the switches. * Changed parameters for H5Tconvert, H5Pset_bufer and H5Pget_buffer from size_t to hsize_t + * Fixed fairly obscure bug in hyperslab I/O which could (in rare cases) + not copy all the data during a transfer. + * Removed ragged array code from library. Platforms Tested ================ diff --git a/examples/Dependencies b/examples/Dependencies index 259844a..218e6ab 100644 --- a/examples/Dependencies +++ b/examples/Dependencies @@ -23,7 +23,6 @@ h5_chunk_read.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -59,7 +58,6 @@ h5_compound.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -95,7 +93,6 @@ h5_extend_write.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -131,7 +128,6 @@ h5_group.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -167,7 +163,6 @@ h5_read.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -203,7 +198,6 @@ h5_write.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -239,7 +233,6 @@ h5_select.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -275,7 +268,6 @@ h5_attribute.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -311,7 +303,6 @@ h5_mount.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -347,7 +338,6 @@ h5_reference.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ diff --git a/pablo/Makefile.in b/pablo/Makefile.in index 4c5fc74..d5941ad 100644 --- a/pablo/Makefile.in +++ b/pablo/Makefile.in @@ -35,7 +35,7 @@ LIB_SRC= \ H5FDstream.c H5FL.c H5G.c H5Gent.c H5Gnode.c H5Gstab.c H5HG.c H5HL.c H5I.c \ H5MF.c H5MM.c H5O.c H5Oattr.c H5Ocomp.c H5Ocont.c H5Odtype.c H5Oefl.c \ H5Ofill.c H5Olayout.c H5Omtime.c H5Oname.c H5Onull.c H5Osdspace.c \ - H5Oshared.c H5Ostab.c H5P.c H5R.c H5RA.c H5S.c H5Sall.c H5Shyper.c \ + H5Oshared.c H5Ostab.c H5P.c H5R.c H5S.c H5Sall.c H5Shyper.c \ H5Smpio.c H5Snone.c H5Spoint.c H5Sselect.c H5T.c H5Tbit.c H5Tconv.c \ H5Tinit.c H5Tvlen.c H5TB.c H5TS.c H5V.c H5Z.c H5Zdeflate.c diff --git a/pablo/ProcTrace.inc b/pablo/ProcTrace.inc index a7137ef..14471f3 100644 --- a/pablo/ProcTrace.inc +++ b/pablo/ProcTrace.inc @@ -1150,32 +1150,6 @@ parameter ( IDH5Psetvlenmemmanager = 575 ) integer IDH5Punregister parameter ( IDH5Punregister = 576 ) - integer IDH5RAclose - parameter ( IDH5RAclose = 577 ) - integer IDH5RAcreate - parameter ( IDH5RAcreate = 578 ) - integer IDH5RAfixoverflow - parameter ( IDH5RAfixoverflow = 579 ) - integer IDH5RAinitinterface - parameter ( IDH5RAinitinterface = 580 ) - integer IDH5RAisa - parameter ( IDH5RAisa = 581 ) - integer IDH5RAopen - parameter ( IDH5RAopen = 582 ) - integer IDH5RAread - parameter ( IDH5RAread = 583 ) - integer IDH5RAwrite - parameter ( IDH5RAwrite = 584 ) - integer IDH5RAclose - parameter ( IDH5RAclose = 585 ) - integer IDH5RAcreate - parameter ( IDH5RAcreate = 586 ) - integer IDH5RAopen - parameter ( IDH5RAopen = 587 ) - integer IDH5RAread - parameter ( IDH5RAread = 588 ) - integer IDH5RAwrite - parameter ( IDH5RAwrite = 589 ) integer IDH5Rcreate parameter ( IDH5Rcreate = 590 ) integer IDH5Rdereference @@ -2050,8 +2024,6 @@ parameter ( IDH5Ostabc = 1025 ) integer IDH5Pc parameter ( IDH5Pc = 1026 ) - integer IDH5RAc - parameter ( IDH5RAc = 1027 ) integer IDH5Rc parameter ( IDH5Rc = 1028 ) integer IDH5Sc diff --git a/src/Dependencies b/src/Dependencies index 8858cee..0983b0f 100644 --- a/src/Dependencies +++ b/src/Dependencies @@ -547,7 +547,6 @@ H5FDdpss.lo: \ $(srcdir)/H5Ppublic.h \ $(srcdir)/H5Zpublic.h \ $(srcdir)/H5Rpublic.h \ - $(srcdir)/H5RApublic.h \ $(srcdir)/H5Spublic.h \ $(srcdir)/H5Tpublic.h \ $(srcdir)/H5FDcore.h \ @@ -587,7 +586,6 @@ H5FDmulti.lo: \ $(srcdir)/H5Ppublic.h \ $(srcdir)/H5Zpublic.h \ $(srcdir)/H5Rpublic.h \ - $(srcdir)/H5RApublic.h \ $(srcdir)/H5Spublic.h \ $(srcdir)/H5Tpublic.h \ $(srcdir)/H5FDcore.h \ @@ -738,7 +736,6 @@ H5FDstdio.lo: \ $(srcdir)/H5Ppublic.h \ $(srcdir)/H5Zpublic.h \ $(srcdir)/H5Rpublic.h \ - $(srcdir)/H5RApublic.h \ $(srcdir)/H5Spublic.h \ $(srcdir)/H5Tpublic.h \ $(srcdir)/H5FDcore.h \ @@ -824,9 +821,7 @@ H5G.lo: \ $(srcdir)/H5HLprivate.h \ $(srcdir)/H5HLpublic.h \ $(srcdir)/H5Iprivate.h \ - $(srcdir)/H5MMprivate.h \ - $(srcdir)/H5RAprivate.h \ - $(srcdir)/H5RApublic.h + $(srcdir)/H5MMprivate.h H5Gent.lo: \ $(srcdir)/H5Gent.c \ $(srcdir)/H5private.h \ @@ -1629,46 +1624,6 @@ H5R.lo: \ $(srcdir)/H5Eprivate.h \ $(srcdir)/H5Epublic.h \ $(srcdir)/H5MMprivate.h -H5RA.lo: \ - $(srcdir)/H5RA.c \ - $(srcdir)/H5RAprivate.h \ - $(srcdir)/H5RApublic.h \ - $(srcdir)/H5Ipublic.h \ - $(srcdir)/H5public.h \ - H5pubconf.h \ - $(srcdir)/H5api_adpt.h \ - $(srcdir)/H5Dprivate.h \ - $(srcdir)/H5Dpublic.h \ - $(srcdir)/H5private.h \ - H5config.h \ - $(srcdir)/H5Fprivate.h \ - $(srcdir)/H5Fpublic.h \ - $(srcdir)/H5FDpublic.h \ - $(srcdir)/H5MMpublic.h \ - $(srcdir)/H5Gprivate.h \ - $(srcdir)/H5Gpublic.h \ - $(srcdir)/H5Bprivate.h \ - $(srcdir)/H5Bpublic.h \ - $(srcdir)/H5ACprivate.h \ - $(srcdir)/H5ACpublic.h \ - $(srcdir)/H5Oprivate.h \ - $(srcdir)/H5Opublic.h \ - $(srcdir)/H5HGprivate.h \ - $(srcdir)/H5HGpublic.h \ - $(srcdir)/H5Tprivate.h \ - $(srcdir)/H5Tpublic.h \ - $(srcdir)/H5Rprivate.h \ - $(srcdir)/H5Rpublic.h \ - $(srcdir)/H5Sprivate.h \ - $(srcdir)/H5Spublic.h \ - $(srcdir)/H5Zprivate.h \ - $(srcdir)/H5Zpublic.h \ - $(srcdir)/H5Eprivate.h \ - $(srcdir)/H5Epublic.h \ - $(srcdir)/H5Iprivate.h \ - $(srcdir)/H5MMprivate.h \ - $(srcdir)/H5Pprivate.h \ - $(srcdir)/H5Ppublic.h H5S.lo: \ $(srcdir)/H5S.c \ $(srcdir)/H5private.h \ diff --git a/src/H5.c b/src/H5.c index c92415f..cd9c6b9 100644 --- a/src/H5.c +++ b/src/H5.c @@ -202,7 +202,6 @@ H5_term_library(void) pending += DOWN(FD); pending += DOWN(D); pending += DOWN(Z); - pending += DOWN(RA); pending += DOWN(G); pending += DOWN(FL); pending += DOWN(R); @@ -1848,12 +1847,6 @@ H5_trace (hbool_t returning, const char *func, const char *type, ...) fprintf(out, " (tbuf"); } break; - case H5I_RAGGED: - fprintf(out, "%ld", (long)obj); - if (HDstrcmp(argname, "array")) { - fprintf(out, " (array)"); - } - break; case H5I_REFERENCE: fprintf(out, "%ld (reference)", (long)obj); break; @@ -1979,9 +1972,6 @@ H5_trace (hbool_t returning, const char *func, const char *type, ...) case H5I_TEMPBUF: fprintf (out, "H5I_TEMPBUF"); break; - case H5I_RAGGED: - fprintf (out, "H5I_RAGGED"); - break; case H5I_REFERENCE: fprintf (out, "H5I_REFERENCE"); break; diff --git a/src/H5E.c b/src/H5E.c index b4928ff..11fb11b 100644 --- a/src/H5E.c +++ b/src/H5E.c @@ -57,7 +57,6 @@ static const H5E_major_mesg_t H5E_major_mesg_g[] = { {H5E_ATTR, "Attribute layer"}, {H5E_PLINE, "Data filters layer"}, {H5E_EFL, "External file list"}, - {H5E_RAGGED, "Ragged array layer"}, {H5E_REFERENCE, "References layer"}, {H5E_VFL, "Virtual File Layer"}, {H5E_TBBT, "Threaded, Balanced, Binary Trees"}, diff --git a/src/H5Epublic.h b/src/H5Epublic.h index 02cc9c6..2335600 100644 --- a/src/H5Epublic.h +++ b/src/H5Epublic.h @@ -96,7 +96,6 @@ typedef enum H5E_major_t { H5E_ATTR, /*Attribute */ H5E_PLINE, /*Data filters */ H5E_EFL, /*External file list */ - H5E_RAGGED, /*Ragged arrays */ H5E_REFERENCE, /*References */ H5E_VFL, /*Virtual File Layer */ H5E_TBBT /*Threaded, Balanced, Binary Trees */ diff --git a/src/H5G.c b/src/H5G.c index 9f3d8c8..4b5efe4 100644 --- a/src/H5G.c +++ b/src/H5G.c @@ -89,7 +89,6 @@ #include #include #include -#include #define H5G_INIT_HEAP 8192 #define H5G_RESERVED_ATOMS 0 @@ -709,7 +708,6 @@ H5G_init_interface(void) H5G_register_type(H5G_TYPE, H5T_isa, "data type"); H5G_register_type(H5G_GROUP, H5G_isa, "group"); H5G_register_type(H5G_DATASET, H5D_isa, "dataset"); - H5G_register_type(H5G_RAGGED, H5RA_isa, "ragged array"); FUNC_LEAVE(SUCCEED); } @@ -1753,7 +1751,6 @@ H5G_loc (hid_t loc_id) H5T_t *dt=NULL; H5D_t *dset=NULL; H5A_t *attr=NULL; - H5RA_t *ra=NULL; FUNC_ENTER (H5G_loc, NULL); @@ -1831,17 +1828,6 @@ H5G_loc (hid_t loc_id) HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, "unable to get symbol table entry of buffer"); - case H5I_RAGGED: - if (NULL==(ra=H5I_object(loc_id))) { - HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, - "invalid ragged array ID"); - } - if (NULL==(ret_value=H5RA_entof(ra))) { - HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, - "unable to get symbol table entry of ragged array"); - } - break; - case H5I_NGROUPS: case H5I_BADID: case H5I_FILE_CLOSING: diff --git a/src/H5Gpublic.h b/src/H5Gpublic.h index 29272e5..378ef2c 100644 --- a/src/H5Gpublic.h +++ b/src/H5Gpublic.h @@ -46,7 +46,7 @@ typedef enum H5G_link_t { #define H5G_GROUP 1 /* Object is a group */ #define H5G_DATASET 2 /* Object is a dataset */ #define H5G_TYPE 3 /* Object is a named data type */ -#define H5G_RAGGED 4 /* Object is a ragged array */ +#define H5G_RESERVED_4 4 /* Reserved for future use */ #define H5G_RESERVED_5 5 /* Reserved for future use */ #define H5G_RESERVED_6 6 /* Reserved for future use */ #define H5G_RESERVED_7 7 /* Reserved for future use */ diff --git a/src/H5Iprivate.h b/src/H5Iprivate.h index 3c33fa2..d18108b 100644 --- a/src/H5Iprivate.h +++ b/src/H5Iprivate.h @@ -35,7 +35,6 @@ #define H5I_GROUPID_HASHSIZE 64 #define H5I_ATTRID_HASHSIZE 64 #define H5I_TEMPBUFID_HASHSIZE 64 -#define H5I_RAGGED_HASHSIZE 64 #define H5I_REFID_HASHSIZE 64 #define H5I_VFL_HASHSIZE 64 #define H5I_GENPROPCLS_HASHSIZE 64 diff --git a/src/H5Ipublic.h b/src/H5Ipublic.h index 20e991a..0157521 100644 --- a/src/H5Ipublic.h +++ b/src/H5Ipublic.h @@ -45,7 +45,6 @@ typedef enum { H5I_DATASET, /*group ID for Dataset objects */ H5I_ATTR, /*group ID for Attribute objects */ H5I_TEMPBUF, /*group ID for Temporary buffer objects */ - H5I_RAGGED, /*group ID for Ragged array objects */ H5I_REFERENCE, /*group ID for Reference objects */ H5I_VFL, /*group ID for virtual file layer */ H5I_GENPROP_CLS, /*group ID for generic property list classes */ diff --git a/src/H5RA.c b/src/H5RA.c deleted file mode 100644 index 71b7eb5..0000000 --- a/src/H5RA.c +++ /dev/null @@ -1,1290 +0,0 @@ -/* - * Copyright © 1998 NCSA - * All rights reserved. - * - * Programmer: Robb Matzke - * Tuesday, August 25, 1998 - * - * Purpose: A ragged array package layered on top of other HDF5 objects. - * This was originally implemented on the HDF5 API but has been - * moved under the API so it meshes better with other objects, - * is somewhat faster, and has better debugging support. - * - * Note: This file implementes a two dimensional array where each row - * of the array is a different length (a.k.a., ragged array). It - * is intended for applications where the distribution of row - * lengths is such that most rows near an average length with - * only a few rows that are significantly shorter or longer. The - * raw data is split among two datasets `raw' and `over': the - * `raw' dataset is a 2d chunked dataset whose width is large - * enough to hold most of the rows and the `over' dataset is a - * heap that stores the end of rows that overflow the first - * dataset. A third dataset called `meta' contains one record - * for each row and describes what elements (if any) overflow - * the `raw' dataset and where they are stored in the `over' - * dataset. All three datasets are contained in a single group - * whose name is the name of the ragged array. - */ -#include - -#include -#include -#include -#include -#include - -typedef struct H5RA_meta_t { - hsize_t nelmts; /*num elements in row */ - hssize_t offset; /*offset into overflow array */ - hsize_t nover; /*allocated size in overflow array */ -} H5RA_meta_t; - -struct H5RA_t { - H5G_t *group; /*the group containing everything */ - H5D_t *meta; /*ragged meta data array */ - H5D_t *raw; /*fixed-width raw data */ - H5D_t *over; /*overflow data */ -}; - -#define PABLO_MASK H5RA_mask -static intn interface_initialize_g = 0; -#define INTERFACE_INIT H5RA_init_interface -static herr_t H5RA_init_interface(void); -static H5T_t *H5RA_meta_type_g = NULL; - -static herr_t H5RA_fix_overflow(H5RA_t *ra, H5T_t *type, H5RA_meta_t *meta, - hsize_t nelmts, void *buf); - - -/*------------------------------------------------------------------------- - * Function: H5RA_init_interface - * - * Purpose: Initialize the interface. - * - * Return: Non-negative on success/Negative on failure - * - * Programmer: Robb Matzke - * Tuesday, August 25, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -static herr_t -H5RA_init_interface(void) -{ - H5T_t *type = NULL; - - FUNC_ENTER(H5RA_init_interface, FAIL); - - /* The atom group */ - if (H5I_init_group(H5I_RAGGED, H5I_RAGGED_HASHSIZE, 0, - (H5I_free_t)H5RA_close)<0) { - HRETURN_ERROR (H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to initialize interface"); - } - - /* The meta dataset type */ - if (NULL==(type=H5T_create(H5T_COMPOUND, sizeof(H5RA_meta_t))) || - H5T_insert(type, "nelmts", HOFFSET(H5RA_meta_t, nelmts), H5I_object(H5T_NATIVE_HSIZE_g))<0 || - H5T_insert(type, "offset", HOFFSET(H5RA_meta_t, offset), H5I_object(H5T_NATIVE_HSSIZE_g))<0 || - H5T_insert(type, "nover", HOFFSET(H5RA_meta_t, nover), H5I_object(H5T_NATIVE_HSIZE_g))) { - HRETURN_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to define ragged array meta type"); - } - H5RA_meta_type_g = type; - - FUNC_LEAVE(SUCCEED); -} - - -/*------------------------------------------------------------------------- - * Function: H5RA_term_interface - * - * Purpose: Terminate the ragged array interface. - * - * Return: Success: Positive if anything was done that might - * affect some other interface. Zero otherwise. - * - * Failure: Negaitive - * - * Programmer: Robb Matzke - * Tuesday, August 25, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -intn -H5RA_term_interface(void) -{ - intn n=0; - - if (interface_initialize_g) { - if ((n=H5I_nmembers(H5I_RAGGED))) { - H5I_clear_group(H5I_RAGGED, FALSE); - } else { - H5T_close(H5RA_meta_type_g); - H5RA_meta_type_g = NULL; - H5I_destroy_group(H5I_RAGGED); - interface_initialize_g = 0; - n = 1; /*H5T,H5I*/ - } - } - return n; -} - - -/*------------------------------------------------------------------------- - * Function: H5RAcreate - * - * Purpose: Create a new ragged array with the specified name. A ragged - * array is implemented as a group containing three datasets. - * The dataset `raw' is a fixed width dataset which will hold - * the majority of the data. The dataset `over' is a one - * dimensional heap which will hold the end of rows which are - * too long to fit in `raw'. Finally, the `meta' dataset - * contains information about the `over' array. All elements of - * the ragged array are stored with the same data type. - * - * The property list PLIST_ID should contain information about - * chunking. The chunk width will determine the width of the - * `raw' dataset while the chunk length should be such that the - * total chunk size is reasonably large (I/O will be performed - * in units of chunks). If the PLIST_ID doesn't have a chunk - * size defined (e.g., H5P_DEFAULT) then this function will fail. - * - * Return: Success: A ragged array ID. - * - * Failure: Negative - * - * Programmer: Robb Matzke - * Tuesday, August 25, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -hid_t -H5RAcreate(hid_t loc_id, const char *name, hid_t type_id, hid_t plist_id) -{ - H5RA_t *ra=NULL; - H5G_entry_t *loc=NULL; - H5T_t *type=NULL; - const H5D_create_t *plist=NULL; - hid_t ret_value=FAIL; - - FUNC_ENTER(H5RAcreate, FAIL); - H5TRACE4("i","isii",loc_id,name,type_id,plist_id); - - /* Check args */ - if (NULL==(loc=H5G_loc(loc_id))) { - HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location"); - } - if (!name || !*name) { - HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name given"); - } - if (H5I_DATATYPE!=H5I_get_type(type_id) || - NULL==(type=H5I_object(type_id))) { - HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data type"); - } - if (H5P_DEFAULT==plist_id) { - plist = &H5D_create_dflt; - } else if (H5P_DATASET_CREATE!=H5P_get_class(plist_id) || - NULL==(plist=H5I_object(plist_id))) { - HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, - "not a dataset creation property list"); - } - if (H5D_CHUNKED!=plist->layout) { - HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, - "property list must define a chunked storage layout"); - } - if (2!=plist->layout) { - HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, - "chunked storage is not two dimensional"); - } - - /* Do the real work */ - if (NULL==(ra=H5RA_create(loc, name, type, plist))) { - HRETURN_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to create ragged array"); - } - - /* Register the new dataset to get an ID for it */ - if ((ret_value=H5I_register(H5I_RAGGED, ra))<0) { - H5RA_close(ra); - HRETURN_ERROR(H5E_RAGGED, H5E_CANTREGISTER, FAIL, - "unable to register ragged array"); - } - - FUNC_LEAVE(ret_value); -} - - -/*------------------------------------------------------------------------- - * Function: H5RA_create - * - * Purpose: Create a new ragged array implemented as a group. - * - * Return: Success: Pointer to the new ragged array. - * - * Failure: NULL - * - * Programmer: Robb Matzke - * Tuesday, August 25, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -H5RA_t * -H5RA_create(H5G_entry_t *loc, const char *name, H5T_t *type, - const H5D_create_t *dcpl) -{ - H5RA_t *ra = NULL; - H5S_t *space = NULL; - hsize_t cur_dims[2]; - hsize_t max_dims[2]; - H5RA_t *ret_value=NULL; - H5D_create_t d1_dcpl; - - FUNC_ENTER(H5RA_create, NULL); - - /* Check args */ - assert(loc); - assert(name && *name); - assert(type); - assert(dcpl); - assert(H5D_CHUNKED==dcpl->layout); - - /* Create the data struct */ - if (NULL==(ra=H5MM_calloc(sizeof(H5RA_t)))) { - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, - "memory allocation failed for ragged array struct"); - } - - /* Create the group to contain the arrays */ - if (NULL==(ra->group=H5G_create(loc, name, 0))) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, NULL, - "unable to create container group"); - } - - /* The raw data array */ - cur_dims[0] = 0; - max_dims[0] = H5S_UNLIMITED; - cur_dims[1] = max_dims[1] = dcpl->chunk_size[1]; - if (NULL==(space=H5S_create(H5S_SIMPLE)) || - H5S_set_extent_simple(space, 2, cur_dims, max_dims)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, NULL, - "unable to define raw dataset extents"); - } - if (NULL==(ra->raw=H5D_create(H5G_entof(ra->group), "raw", type, space, - dcpl))) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, NULL, - "unable to create raw dataset"); - } - if (H5S_close(space)<0) { - space = NULL; - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, NULL, - "unable to close raw dataset extents"); - } - space = NULL; - - /* The overflow data array */ - cur_dims[0] = 0; - max_dims[0] = H5S_UNLIMITED; - if (NULL==(space=H5S_create(H5S_SIMPLE)) || - H5S_set_extent_simple(space, 1, cur_dims, max_dims)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, NULL, - "unable to define overflow dataset extents"); - } - d1_dcpl = *dcpl; - d1_dcpl.chunk_ndims = 1; - d1_dcpl.chunk_size[0] = dcpl->chunk_size[0]*dcpl->chunk_size[1]; - if (NULL==(ra->over=H5D_create(H5G_entof(ra->group), "over", type, space, - &d1_dcpl))) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, NULL, - "unable to create overflow dataset"); - } - if (H5S_close(space)<0) { - space = NULL; - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, NULL, - "unable to close overflow dataset extents"); - } - space = NULL; - - /* The meta data array */ - cur_dims[0] = 0; - max_dims[0] = H5S_UNLIMITED; - if (NULL==(space=H5S_create(H5S_SIMPLE)) || - H5S_set_extent_simple(space, 1, cur_dims, max_dims)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, NULL, - "unable to define meta dataset extents"); - } - d1_dcpl.chunk_size[0] = MAX(1, - (dcpl->chunk_size[0]*dcpl->chunk_size[1]* - H5T_get_size(type))/ - H5T_get_size(H5RA_meta_type_g)); - if (NULL==(ra->meta=H5D_create(H5G_entof(ra->group), "meta", - H5RA_meta_type_g, space, &d1_dcpl))) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, NULL, - "unable to create meta dataset"); - } - if (H5S_close(space)<0) { - space = NULL; - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, NULL, - "unable to close meta dataset extents"); - } - space = NULL; - - ret_value = ra; - - done: - if (!ret_value) { - if (space) H5S_close(space); - if (ra) { - if (ra->group) H5G_close(ra->group); - if (ra->raw) H5D_close(ra->raw); - if (ra->over) H5D_close(ra->over); - if (ra->meta) H5D_close(ra->meta); - H5MM_xfree(ra); - } - } - FUNC_LEAVE(ret_value); -} - - -/*------------------------------------------------------------------------- - * Function: H5RAopen - * - * Purpose: Opens an existing ragged array. The name of the array should - * be the same that was used when the array was created; that is, - * the name of the group which implements the array. - * - * Return: Success: An array ID - * - * Failure: Negative - * - * Programmer: Robb Matzke - * Tuesday, August 25, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -hid_t -H5RAopen(hid_t loc_id, const char *name) -{ - H5G_entry_t *loc=NULL; - H5RA_t *ra=NULL; - hid_t ret_value=FAIL; - - FUNC_ENTER(H5RAopen, FAIL); - H5TRACE2("i","is",loc_id,name); - - /* Check args */ - if (NULL==(loc=H5G_loc(loc_id))) { - HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location"); - } - if (!name || !*name) { - HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name given"); - } - - /* The real work */ - if (NULL==(ra=H5RA_open(loc, name))) { - HRETURN_ERROR(H5E_RAGGED, H5E_CANTOPENOBJ, FAIL, - "unable to open ragged array"); - } - - /* Turn it into an atom */ - if ((ret_value=H5I_register(H5I_RAGGED, ra))<0) { - H5RA_close(ra); - HRETURN_ERROR(H5E_RAGGED, H5E_CANTREGISTER, FAIL, - "unable to register ragged array"); - } - - FUNC_LEAVE(ret_value); -} - - -/*------------------------------------------------------------------------- - * Function: H5RA_isa - * - * Purpose: Determines if an object is a ragged array. - * - * Return: Success: TRUE if the object is a ragged array; FALSE - * otherwise. - * - * Failure: Negative - * - * Programmer: Robb Matzke - * Wednesday, November 4, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -htri_t -H5RA_isa(H5G_entry_t *ent) -{ - htri_t exists; - H5G_entry_t d_ent; - - FUNC_ENTER(H5RA_isa, FAIL); - - /* Open the container group */ - if ((exists=H5G_isa(ent))<0) { - HRETURN_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to read object header"); - } else if (!exists) { - HRETURN(FALSE); - } - - /* Is `raw' a dataset? */ - if (H5G_find(ent, "raw", NULL, &d_ent)<0) HRETURN(FALSE); - if ((exists=H5D_isa(&d_ent))<0) { - HRETURN_ERROR(H5E_DATASET, H5E_NOTFOUND, FAIL, "not found"); - } else if (!exists) { - HRETURN(FALSE); - } - - /* Is `over' a dataset? */ - if (H5G_find(ent, "over", NULL, &d_ent)<0 || - (exists=H5D_isa(&d_ent))<0) { - HRETURN_ERROR(H5E_DATASET, H5E_NOTFOUND, FAIL, "not found"); - } else if (!exists) { - HRETURN(FALSE); - } - - /* Is `meta' a dataset? */ - if (H5G_find(ent, "meta", NULL, &d_ent)<0 || - (exists=H5D_isa(&d_ent))<0) { - HRETURN_ERROR(H5E_DATASET, H5E_NOTFOUND, FAIL, "not found"); - } else if (!exists) { - HRETURN(FALSE); - } - - FUNC_LEAVE(TRUE); -} - - -/*------------------------------------------------------------------------- - * Function: H5RA_open - * - * Purpose: Open a ragged array. The name of the array is the same as - * the group that implements the array. - * - * Return: Success: Ptr to a new ragged array object. - * - * Failure: NULL - * - * Programmer: Robb Matzke - * Tuesday, August 25, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -H5RA_t * -H5RA_open(H5G_entry_t *loc, const char *name) -{ - H5RA_t *ra = NULL; - H5RA_t *ret_value = NULL; - - FUNC_ENTER(H5RA_open, NULL); - - /* Check arguments */ - assert(loc); - assert(name && *name); - - /* Create the struct */ - if (NULL==(ra=H5MM_calloc(sizeof(H5RA_t)))) { - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, - "memory allocation failed for ragged array struct"); - } - - /* Open the containing group */ - if (NULL==(ra->group=H5G_open(loc, name))) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTOPENOBJ, NULL, - "unable to open container group"); - } - - /* Open the datasets */ - if (NULL==(ra->raw=H5D_open(H5G_entof(ra->group), "raw")) || - NULL==(ra->over=H5D_open(H5G_entof(ra->group), "over")) || - NULL==(ra->meta=H5D_open(H5G_entof(ra->group), "meta"))) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTOPENOBJ, NULL, - "unable to open one or more component datasets"); - } - - ret_value = ra; - - done: - if (!ret_value) { - if (ra) { - if (ra->group) H5G_close(ra->group); - if (ra->raw) H5D_close(ra->raw); - if (ra->over) H5D_close(ra->over); - if (ra->meta) H5D_close(ra->meta); - H5MM_xfree(ra); - } - } - FUNC_LEAVE(ret_value); -} - - -/*------------------------------------------------------------------------- - * Function: H5RAclose - * - * Purpose: Close a ragged array. - * - * Return: Non-negative on success/Negative on failure - * - * Programmer: Robb Matzke - * Tuesday, August 25, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -herr_t -H5RAclose(hid_t array_id) -{ - FUNC_ENTER(H5RAclose, FAIL); - H5TRACE1("e","i",array_id); - - /* Check args */ - if (H5I_RAGGED!=H5I_get_type(array_id) || - NULL==H5I_object(array_id)) { - HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a ragged array"); - } - - /* - * Decrement the counter on the array. It will be freed if the count - * reaches zero. - */ - if (H5I_dec_ref(array_id) < 0) { - HRETURN_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to free"); - } - - FUNC_LEAVE(SUCCEED); -} - - -/*------------------------------------------------------------------------- - * Function: H5RA_close - * - * Purpose: Close a ragged array - * - * Return: Non-negative on success/Negative on failure - * - * Programmer: Robb Matzke - * Tuesday, August 25, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -herr_t -H5RA_close(H5RA_t *ra) -{ - FUNC_ENTER(H5RA_close, FAIL); - - assert(ra); - if ((ra->group && H5G_close(ra->group)<0) || - (ra->raw && H5D_close(ra->raw)<0) || - (ra->over && H5D_close(ra->over)<0) || - (ra->meta && H5D_close(ra->meta)<0)) { - HRETURN_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to close one or more component datasets"); - } - HDmemset(ra, 0, sizeof(H5RA_t)); - H5MM_xfree(ra); - - FUNC_LEAVE(SUCCEED); -} - - -/*------------------------------------------------------------------------- - * Function: H5RAwrite - * - * Purpose: Write a contiguous set of rows to a ragged array beginning at - * row number START_ROW and continuing for NROWS rows. Each row - * of the ragged array contains SIZE[] elements of type TYPE_ID - * and each row is stored in a buffer pointed to by BUF[]. - * - * Return: Non-negative on success/Negative on failure - * - * Programmer: Robb Matzke - * Tuesday, August 25, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -herr_t -H5RAwrite(hid_t array_id, hssize_t start_row, hsize_t nrows, - hid_t type_id, hsize_t size[/*nrows*/], void *buf[/*nrows*/]) -{ - H5RA_t *ra=NULL; - H5T_t *type=NULL; - hsize_t i; - - FUNC_ENTER(H5RAwrite, FAIL); - H5TRACE6("e","iHshi*[a2]h*[a2]x",array_id,start_row,nrows,type_id,size, - buf); - - /* Check args */ - if (H5I_RAGGED!=H5I_get_type(array_id) || - NULL==(ra=H5I_object(array_id))) { - HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a ragged array"); - } - if (H5I_DATATYPE!=H5I_get_type(type_id) || - NULL==(type=H5I_object(type_id))) { - HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data type"); - } - if (nrows>0 && !size) { - HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no size array"); - } - if (nrows>0 && !buf) { - HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no output buffer array"); - } - for (i=0; i0 && !buf[i]) { - HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, - "one or more buffer points are null"); - } - } - - /* Do the work */ - if (H5RA_write(ra, start_row, nrows, type, size, buf)<0) { - HRETURN_ERROR(H5E_RAGGED, H5E_WRITEERROR, FAIL, - "unable to write to ragged array"); - } - - FUNC_LEAVE(SUCCEED); -} - - -/*------------------------------------------------------------------------- - * Function: H5RA_write - * - * Purpose: Write a contiguous set of rows to a ragged array beginning at - * row number START_ROW and continuing for NROWS rows. Each row - * of the ragged array contains SIZE[] elements of type TYPE_ID - * and each row is stored in a buffer pointed to by BUF[]. - * - * Return: Non-negative on success/Negative on failure - * - * Programmer: Robb Matzke - * Tuesday, August 25, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -herr_t -H5RA_write(H5RA_t *ra, hssize_t start_row, hsize_t nrows, H5T_t *type, - hsize_t size[], void *buf[]) -{ - herr_t ret_value=FAIL; - H5RA_meta_t *meta = NULL; - H5S_t *mf_space=NULL; /*meta file data space */ - H5S_t *mm_space=NULL; /*meta memory data space */ - H5S_t *rf_space=NULL; /*raw data file space */ - H5S_t *rm_space=NULL; /*raw data memory space */ - hsize_t meta_cur_size; /*current meta data nelmts */ - hsize_t meta_read_size; /*amount to read */ - hsize_t raw_cur_size[2]; /*raw data current size */ - hssize_t hs_offset[2]; /*hyperslab offset */ - hsize_t hs_size[2]; /*hyperslab size */ - uint8_t *raw_buf=NULL; /*raw buffer */ - size_t type_size; /*size of the TYPE argument */ - hsize_t i; - - FUNC_ENTER(H5RA_write, FAIL); - - /* Check args */ - assert(ra); - assert(type); - assert(0==nrows || size); - assert(0==nrows || buf); - if (0==nrows) HRETURN(SUCCEED); - type_size = H5T_get_size(type); - - /* Get the meta data */ - if (NULL==(mf_space=H5D_get_space(ra->meta)) || - H5S_get_simple_extent_dims(mf_space, &meta_cur_size, NULL)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to get current meta data extents"); - } - if ((hsize_t)start_row>=meta_cur_size) { - meta_read_size = 0; - } else { - meta_read_size = MIN(nrows, meta_cur_size-(hsize_t)start_row); - } - if (NULL==(mm_space=H5S_create(H5S_SIMPLE)) || - H5S_set_extent_simple(mm_space, 1, &meta_read_size, NULL)<0 || - H5S_select_hyperslab(mf_space, H5S_SELECT_SET, &start_row, NULL, - &meta_read_size, NULL)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to set meta data selection"); - } - assert((nrows*sizeof(H5RA_meta_t))==(hsize_t)((size_t)(nrows*sizeof(H5RA_meta_t)))); /*check for overflow*/ - if (NULL==(meta=H5MM_malloc((size_t)(nrows*sizeof(H5RA_meta_t))))) { - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, - "memory allocation failed for meta data"); - } - if (H5D_read(ra->meta, H5RA_meta_type_g, mm_space, mf_space, - H5P_DEFAULT, meta)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_READERROR, FAIL, - "unable to read meta data"); - } - assert(((nrows-meta_read_size)*sizeof(H5RA_meta_t))==(hsize_t)((size_t)((nrows-meta_read_size)*sizeof(H5RA_meta_t)))); /*check for overflow*/ - HDmemset(meta+meta_read_size, 0, - (size_t)((nrows-meta_read_size)*sizeof(H5RA_meta_t))); - - /* Write the part of the data that will fit in the raw dataset */ - if (NULL==(rf_space=H5D_get_space(ra->raw)) || - H5S_get_simple_extent_dims(rf_space, raw_cur_size, NULL)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to determine current raw data extents"); - } - assert((nrows*raw_cur_size[1]*type_size)==(hsize_t)((size_t)(nrows*raw_cur_size[1]*type_size))); /*check for overflow*/ - if (NULL==(raw_buf=H5MM_malloc((size_t)(nrows*raw_cur_size[1]*type_size)))) { - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, - "unable to allocate buffer for raw data"); - } - for (i=0; iraw_cur_size[0]) { - raw_cur_size[0] = (hsize_t)start_row + nrows; - if (H5D_extend(ra->raw, raw_cur_size)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to extend raw dataset"); - } - /* Throw away previous raw file dataspace */ - H5S_close(rf_space); - - /* Retrieve newly extended raw file dataspace */ - if (NULL==(rf_space=H5D_get_space(ra->raw)) || - H5S_get_simple_extent_dims(rf_space, raw_cur_size, NULL)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to determine current raw data extents"); - } - } - hs_offset[0] = start_row; - hs_offset[1] = 0; - hs_size[0] = nrows; - hs_size[1] = raw_cur_size[1]; - if (NULL==(rm_space=H5S_create(H5S_SIMPLE)) || - H5S_set_extent_simple(rm_space, 2, hs_size, NULL)<0 || - H5S_select_hyperslab(rf_space, H5S_SELECT_SET, - hs_offset, NULL, hs_size, NULL)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to set meta data selection"); - } - if (H5D_write(ra->raw, type, rm_space, rf_space, H5P_DEFAULT, - raw_buf)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_WRITEERROR, FAIL, - "unable to write raw data"); - } - - /* Update the meta data */ - for (i=0; iraw_cur_size[1]) { - H5RA_fix_overflow(ra, type, meta+i, size[i]-raw_cur_size[1], - (uint8_t*)(buf[i])+raw_cur_size[1]*type_size); - } - meta[i].nelmts = size[i]; - } - - /* Extend and write the new meta data */ - if ((hsize_t)start_row+nrows>meta_cur_size) { - meta_cur_size = (hsize_t)start_row+nrows; - if (H5D_extend(ra->meta, &meta_cur_size)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to extend meta dataset"); - } - /* Throw away previous meta file dataspace */ - H5S_close(mf_space); - - /* Retrieve newly extended meta file dataspace */ - if (NULL==(mf_space=H5D_get_space(ra->meta)) || - H5S_get_simple_extent_dims(mf_space, &meta_cur_size, NULL)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to determine current raw data extents"); - } - } - if (H5S_set_extent_simple(mm_space, 1, &nrows, NULL)<0 || - H5S_select_hyperslab(mf_space, H5S_SELECT_SET, &start_row, NULL, - &nrows, NULL)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to set meta data selection"); - } - if (H5D_write(ra->meta, H5RA_meta_type_g, mm_space, mf_space, - H5P_DEFAULT, meta)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_WRITEERROR, FAIL, - "unable to write meta data"); - } - - ret_value = SUCCEED; - done: - H5MM_xfree(meta); - H5MM_xfree(raw_buf); - if (mm_space) H5S_close(mm_space); - if (mf_space) H5S_close(mf_space); - if (rm_space) H5S_close(rm_space); - if (rf_space) H5S_close(rf_space); - - FUNC_LEAVE(ret_value); -} - - -/*------------------------------------------------------------------------- - * Function: H5RA_fix_overflow - * - * Purpose: Updates the overflow information for a row. This is where - * the heap management comes into play. The NELMTS is the - * number of elements that overflow into the heap and BUF is a - * pointer to those elements. The first part of the row has - * already been written to the raw dataset. - * - * Return: Non-negative on success/Negative on failure - * - * Programmer: Robb Matzke - * Wednesday, August 26, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -static herr_t -H5RA_fix_overflow(H5RA_t *ra, H5T_t *type, H5RA_meta_t *meta, hsize_t nelmts, - void *buf) -{ - H5S_t *of_space=NULL; /*overflow file space */ - H5S_t *om_space=NULL; /*overflow memory space */ - hsize_t cur_size; /*num elmts in overflow dataset */ - herr_t ret_value=FAIL; /*return value */ - - FUNC_ENTER(H5RA_fix_overflow, FAIL); - - assert(ra); - assert(meta); - assert(buf); - - if (nelmts==meta->nover) { - /* The space is already allocated -- do nothing */ - - } else if (nelmtsnover) { - /* Too much space is allocated -- free the extra */ -#ifndef LATER - /* - * For now we don't worry about reclaiming space. But we remember - * the original amount allocated to allow the row to grow again up to - * that amount. - */ -#endif - - } else if (meta->nover>0) { - /* Space is allocated but we need more */ -#ifndef LATER - /* - * For now we'll just reallocate space at the end of the overflow - * dataset, but eventually we'll want to move the smallest of the - * current overflow, the previous overflow, or the following overflow - * region to the end of the file and be careful to reclaim space. - */ - if (NULL==(of_space=H5D_get_space(ra->over)) || - H5S_get_simple_extent_dims(of_space, &cur_size, NULL)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to get overflow dataset extents"); - } - meta->offset = (hssize_t)cur_size; - meta->nover = nelmts; - cur_size += nelmts; - if (H5D_extend(ra->over, &cur_size)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to extend overflow dataset"); - } - /* Throw away previous overflow file dataspace */ - H5S_close(of_space); - - /* Retrieve newly extended overflow file dataspace */ - if (NULL==(of_space=H5D_get_space(ra->over)) || - H5S_get_simple_extent_dims(of_space, &cur_size, NULL)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to determine current overflow data extents"); - } -#endif - - } else { - /* No space is allocated */ - assert(nelmts>0); - if (NULL==(of_space=H5D_get_space(ra->over)) || - H5S_get_simple_extent_dims(of_space, &cur_size, NULL)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to get overflow dataset extents"); - } - meta->offset = (hssize_t)cur_size; - meta->nover = nelmts; - cur_size += nelmts; - if (H5D_extend(ra->over, &cur_size)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to extend overflow dataset"); - } - /* Throw away previous overflow file dataspace */ - H5S_close(of_space); - - /* Retrieve newly extended overflow file dataspace */ - if (NULL==(of_space=H5D_get_space(ra->over)) || - H5S_get_simple_extent_dims(of_space, &cur_size, NULL)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to determine current overflow data extents"); - } - } - - /* Write the data */ - if (nelmts>0) { - if (!of_space && NULL==(of_space=H5D_get_space(ra->over))) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to get overflow dataset extents"); - } - if (NULL==(om_space=H5S_create(H5S_SIMPLE)) || - H5S_set_extent_simple(om_space, 1, &nelmts, NULL)<0 || - H5S_select_hyperslab(of_space, H5S_SELECT_SET, &(meta->offset), - NULL, &nelmts, NULL)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to set overflow selection"); - } - if (H5D_write(ra->over, type, om_space, of_space, H5P_DEFAULT, - buf)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_WRITEERROR, FAIL, - "unable to write to overflow dataset"); - } - } - - ret_value = SUCCEED; - - done: - if (of_space) H5S_close(of_space); - if (om_space) H5S_close(om_space); - if (ret_value<0) { - meta->offset = 0; - meta->nover = 0; - } - FUNC_LEAVE(ret_value); -} - - -/*------------------------------------------------------------------------- - * Function: H5RAread - * - * Purpose: Reads the contents of one or more rows of a ragged array - * pointed to by ARRAY_ID. The rows to read begin at row - * START_ROW and continue for NROWS rows with all raw data - * converted to type TYPE_ID. - * - * The caller must allocate the SIZE[] and BUF[] arrays but - * memory for the data can be allocated by either the caller or - * the library. In the former case the caller should initialize - * the BUF[] array with pointers to valid memory and the SIZE[] - * array with the lengths of the buffers. In the latter case - * the caller should initialize BUF[] with null pointers (the - * input value of SIZE[] is irrelevant in this case) and the - * library will allocate memory for each row by calling malloc(). - * - * Return: Success: Non-negative. The values of the SIZE[] array will - * be the true length of each row. If a row is - * longer than the caller-allocated length then - * SIZE[] will contain the true length of the - * row although not all elements of that row - * will be stored in the buffer. - * - * Failure: Negative. The BUF[] array will contain it's - * original pointers (null or otherwise) - * although the caller-supplied buffers may have - * been modified. The SIZE[] array may also be - * modified. - * - * Programmer: Robb Matzke - * Tuesday, August 25, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -herr_t -H5RAread(hid_t array_id, hssize_t start_row, hsize_t nrows, - hid_t type_id, hsize_t size[/*nrows*/], void *buf[/*nrows*/]) -{ - H5RA_t *ra=NULL; - H5T_t *type=NULL; - - FUNC_ENTER(H5RAread, FAIL); - H5TRACE6("e","iHshi*[a2]h*[a2]x",array_id,start_row,nrows,type_id,size, - buf); - - /* Check args */ - if (H5I_RAGGED!=H5I_get_type(array_id) || - NULL==(ra=H5I_object(array_id))) { - HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a ragged array"); - } - if (H5I_DATATYPE!=H5I_get_type(type_id) || - NULL==(type=H5I_object(type_id))) { - HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data type"); - } - if (nrows>0 && !size) { - HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no size array"); - } - if (nrows>0 && !buf) { - HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no output buffer array"); - } - - /* Do the work */ - if (H5RA_read(ra, start_row, nrows, type, size, buf)<0) { - HRETURN_ERROR(H5E_RAGGED, H5E_READERROR, FAIL, - "unable to read ragged array"); - } - - FUNC_LEAVE(SUCCEED); -} - - -/*------------------------------------------------------------------------- - * Function: H5RA_read - * - * Purpose: Reads (part of) a ragged array. See H5RAread() for details. - * - * Return: Non-negative on success/Negative on failure - * - * Programmer: Robb Matzke - * Wednesday, August 26, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -herr_t -H5RA_read(H5RA_t *ra, hssize_t start_row, hsize_t nrows, H5T_t *type, - hsize_t size[], void *buf[]) -{ - herr_t ret_value=FAIL; - H5RA_meta_t *meta = NULL; - H5S_t *mf_space=NULL; /*meta file data space */ - H5S_t *mm_space=NULL; /*meta memory data space */ - H5S_t *rf_space=NULL; /*raw data file space */ - H5S_t *rm_space=NULL; /*raw data memory space */ - H5S_t *of_space=NULL; /*overflow data file space */ - H5S_t *om_space=NULL; /*overflow data memory space */ - hsize_t meta_cur_size; /*current meta data nelmts */ - hsize_t meta_read_size; /*amount of meta data to read */ - hsize_t raw_cur_size[2]; /*raw data current size */ - hsize_t raw_read_size[2]; /*amount of raw data to read */ - hssize_t hs_offset[2]; /*hyperslab offset */ - hsize_t hs_size[2]; /*hyperslab size */ - uint8_t *raw_buf=NULL; /*raw buffer */ - size_t type_size; /*size of the TYPE argument */ - void **buf_out=NULL; /*output BUF values */ - hsize_t i; /*counter */ - - FUNC_ENTER(H5RA_read, FAIL); - - /* Check args */ - assert(ra); - assert(type); - assert(0==nrows || size); - assert(0==nrows || buf); - if (0==nrows) HRETURN(SUCCEED); - type_size = H5T_get_size(type); - - /* - * Malloc `buf_out' to hold the output values for `buf'. We have to do - * this because if we return failure we want `buf' to have the original - * values. - */ - assert((nrows*sizeof(void*))==(hsize_t)((size_t)(nrows*sizeof(void*)))); /*check for overflow*/ - if (NULL==(buf_out=H5MM_calloc((size_t)(nrows*sizeof(void*))))) { - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, - "memory allocation failed for BUF output values"); - } - - /* Read from the raw dataset */ - if (NULL==(rf_space=H5D_get_space(ra->raw)) || - H5S_get_simple_extent_dims(rf_space, raw_cur_size, NULL)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to determine current raw data extents"); - } - if ((hsize_t)start_row>=raw_cur_size[0]) { - raw_read_size[0] = 0; - raw_read_size[1] = raw_cur_size[1]; - } else { - raw_read_size[0] = MIN(nrows, raw_cur_size[0]-(hsize_t)start_row); - raw_read_size[1] = raw_cur_size[1]; - } - hs_offset[0] = start_row; - hs_offset[1] = 0; - if (NULL==(rm_space=H5S_create(H5S_SIMPLE)) || - H5S_set_extent_simple(rm_space, 2, raw_read_size, NULL)<0 || - H5S_select_hyperslab(rf_space, H5S_SELECT_SET, hs_offset, NULL, - raw_read_size, NULL)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to set raw dataset selection"); - } - assert((nrows*raw_read_size[1]*type_size)==(hsize_t)((size_t)(nrows*raw_read_size[1]*type_size))); /*check for overflow*/ - if (NULL==(raw_buf=H5MM_malloc((size_t)(nrows*raw_read_size[1]*type_size)))) { - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, - "memory allocation failed for raw dataset"); - } - if (H5D_read(ra->raw, type, rm_space, rf_space, H5P_DEFAULT, - raw_buf)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_READERROR, FAIL, - "unable to read raw dataset"); - } - assert(((nrows-raw_read_size[0])*raw_read_size[1]*type_size)==(hsize_t)((size_t)((nrows-raw_read_size[0])*raw_read_size[1]*type_size))); /*check for overflow*/ - HDmemset(raw_buf+raw_read_size[0]*raw_read_size[1]*type_size, 0, - (size_t)((nrows-raw_read_size[0])*raw_read_size[1]*type_size)); - - /* Get the meta data */ - assert((nrows*sizeof(H5RA_meta_t))==(hsize_t)((size_t)(nrows*sizeof(H5RA_meta_t)))); /*check for overflow*/ - if (NULL==(meta=H5MM_malloc((size_t)(nrows*sizeof(H5RA_meta_t))))) { - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, - "memory allocation failed for meta data"); - } - if (NULL==(mf_space=H5D_get_space(ra->meta)) || - H5S_get_simple_extent_dims(mf_space, &meta_cur_size, NULL)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to get current meta data extents"); - } - if ((hsize_t)start_row>=meta_cur_size) { - meta_read_size = 0; - } else { - meta_read_size = MIN(nrows, meta_cur_size-(hsize_t)start_row); - } - if (NULL==(mm_space=H5S_create(H5S_SIMPLE)) || - H5S_set_extent_simple(mm_space, 1, &meta_read_size, NULL)<0 || - H5S_select_hyperslab(mf_space, H5S_SELECT_SET, &start_row, NULL, - &meta_read_size, NULL)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to set meta data selection"); - } - if (H5D_read(ra->meta, H5RA_meta_type_g, mm_space, mf_space, - H5P_DEFAULT, meta)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_READERROR, FAIL, - "unable to read meta data"); - } - assert(((nrows-meta_read_size)*sizeof(H5RA_meta_t))==(hsize_t)((size_t)((nrows-meta_read_size)*sizeof(H5RA_meta_t)))); /*check for overflow*/ - HDmemset(meta+meta_read_size, 0, - (size_t)((nrows-meta_read_size)*sizeof(H5RA_meta_t))); - - /* Copy data into output buffers */ - for (i=0; i0 && - NULL==(buf_out[i]=H5MM_malloc((size_t)(meta[i].nelmts*type_size)))) { - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, - "memory allocation failed for result"); - } - size[i] = meta[i].nelmts; - } else { - size[i] = MIN(size[i], meta[i].nelmts); - } - if (0==size[i]) continue; - - /* Copy the part of the row from the raw dataset */ - HDmemcpy(buf_out[i], raw_buf+i*raw_read_size[1]*type_size, - (size_t)(MIN(size[i], raw_read_size[1])*type_size)); - - /* Copy the part of the row from the overflow dataset */ - if (size[i]>raw_read_size[1]) { - if (!of_space && NULL==(of_space=H5D_get_space(ra->over))) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to get overflow extents"); - } - hs_size[0] = size[i]-raw_read_size[1]; - if (NULL==(om_space=H5S_create(H5S_SIMPLE)) || - H5S_set_extent_simple(om_space, 1, size+i, NULL)<0 || - H5S_select_hyperslab(om_space, H5S_SELECT_SET, - (hssize_t*)(raw_read_size+1), NULL, - hs_size, NULL)<0 || - H5S_select_hyperslab(of_space, H5S_SELECT_SET, - &(meta[i].offset), NULL, hs_size, - NULL)<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to set overflow selection"); - } - if (H5D_read(ra->over, type, om_space, of_space, H5P_DEFAULT, - buf_out[i])<0) { - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to read overflow dataset"); - } - if (H5S_close(om_space)<0) { - om_space = NULL; - HGOTO_ERROR(H5E_RAGGED, H5E_CANTINIT, FAIL, - "unable to close overflow memory space"); - } - om_space = NULL; - } - - /* Actual row size */ - size[i] = meta[i].nelmts; - } - - /* Copy output buffers into BUF argument */ - for (i=0; igroup); -} diff --git a/src/H5RAprivate.h b/src/H5RAprivate.h deleted file mode 100644 index f8dcdf7..0000000 --- a/src/H5RAprivate.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright © 1998 NCSA - * All rights reserved. - * - * Programmer: Robb Matzke - * Tuesday, August 25, 1998 - */ -#ifndef _H5RAprivate_H -#define _H5RAprivate_H -#include - -#include -#include -#include - -typedef struct H5RA_t H5RA_t; - -__DLL__ herr_t H5RA_close(H5RA_t *ra); -__DLL__ H5RA_t *H5RA_create(H5G_entry_t *loc, const char *name, H5T_t *type, - const H5D_create_t *dcpl); -__DLL__ H5RA_t *H5RA_open(H5G_entry_t *loc, const char *name); -__DLL__ htri_t H5RA_isa(H5G_entry_t *ent); -__DLL__ herr_t H5RA_write(H5RA_t *ra, hssize_t start_row, hsize_t nrows, - H5T_t *type, hsize_t size[], void *buf[]); -__DLL__ herr_t H5RA_read(H5RA_t *ra, hssize_t start_row, hsize_t nrows, - H5T_t *type, hsize_t size[], void *buf[]); -__DLL__ H5G_entry_t *H5RA_entof(H5RA_t *ra); - -#endif diff --git a/src/H5RApublic.h b/src/H5RApublic.h deleted file mode 100644 index 8478f90..0000000 --- a/src/H5RApublic.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright © 1998 NCSA - * All rights reserved. - * - * Programmer: Robb Matzke - * Tuesday, August 25, 1998 - */ -#ifndef _H5RApublic_H -#define _H5RApublic_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -__DLL__ hid_t H5RAcreate(hid_t loc_id, const char *name, hid_t type_id, - hid_t plist_id); -__DLL__ hid_t H5RAopen(hid_t loc_id, const char *name); -__DLL__ herr_t H5RAclose(hid_t array_id); -__DLL__ herr_t H5RAwrite(hid_t array_id, hssize_t start_row, hsize_t nrows, - hid_t type_id, hsize_t size[], void *buf[]); -__DLL__ herr_t H5RAread(hid_t array_id, hssize_t start_row, hsize_t nrows, - hid_t type_id, hsize_t size[], void *buf[]); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/H5private.h b/src/H5private.h index 64deb79..c19bd59 100644 --- a/src/H5private.h +++ b/src/H5private.h @@ -1061,7 +1061,6 @@ __DLL__ intn H5F_term_interface(void); __DLL__ intn H5G_term_interface(void); __DLL__ intn H5I_term_interface(void); __DLL__ intn H5P_term_interface(void); -__DLL__ intn H5RA_term_interface(void); __DLL__ intn H5R_term_interface(void); __DLL__ intn H5S_term_interface(void); __DLL__ intn H5TN_term_interface(void); diff --git a/src/Makefile.in b/src/Makefile.in index 05b5afe..17f73ea 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -25,7 +25,7 @@ LIB_SRC=H5.c H5A.c H5AC.c H5B.c H5D.c H5E.c H5F.c H5Farray.c H5Fcontig.c \ H5FDstream.c H5FL.c H5G.c H5Gent.c H5Gnode.c H5Gstab.c H5HG.c H5HL.c H5I.c \ H5MF.c H5MM.c H5O.c H5Oattr.c H5Ocomp.c H5Ocont.c H5Odtype.c H5Oefl.c \ H5Ofill.c H5Olayout.c H5Omtime.c H5Oname.c H5Onull.c H5Osdspace.c \ - H5Oshared.c H5Ostab.c H5P.c H5R.c H5RA.c H5S.c H5Sall.c H5Shyper.c \ + H5Oshared.c H5Ostab.c H5P.c H5R.c H5S.c H5Sall.c H5Shyper.c \ H5Smpio.c H5Snone.c H5Spoint.c H5Sselect.c H5T.c H5Tbit.c H5Tconv.c \ H5Tinit.c H5Tvlen.c H5TB.c H5TS.c H5V.c H5Z.c H5Zdeflate.c @@ -40,7 +40,7 @@ PUB_HDR=H5public.h H5Apublic.h H5ACpublic.h H5Bpublic.h H5Dpublic.h H5Epublic.h H5Fpublic.h H5FDpublic.h H5FDdpss.h H5FDfamily.h H5FDgass.h H5FDmpio.h \ H5FDlog.h H5FDsec2.h H5FDsrb.h H5FDstream.h H5FDcore.h H5FDmulti.h \ H5FDstdio.h H5FDstream.h H5Gpublic.h H5HGpublic.h H5HLpublic.h H5Ipublic.h \ - H5MMpublic.h H5Opublic.h H5Ppublic.h H5Rpublic.h H5RApublic.h H5Spublic.h \ + H5MMpublic.h H5Opublic.h H5Ppublic.h H5Rpublic.h H5Spublic.h \ H5Tpublic.h H5Zpublic.h H5pubconf.h H5FDstream.h hdf5.h H5api_adpt.h @@ -49,7 +49,7 @@ PRIVATE_HDR=H5private.h H5Aprivate.h H5Apkg.h H5ACprivate.h H5Bprivate.h \ H5Dprivate.h H5Eprivate.h H5Fprivate.h H5FDprivate.h H5FLprivate.h \ H5Gprivate.h H5Gpkg.h H5HGprivate.h H5HLprivate.h H5Iprivate.h \ H5MFprivate.h H5MMprivate.h H5Oprivate.h H5Pprivate.h H5Rprivate.h \ - H5RAprivate.h H5Sprivate.h H5Tprivate.h H5TBprivate.h H5Tpkg.h \ + H5Sprivate.h H5Tprivate.h H5TBprivate.h H5Tpkg.h \ H5TSprivate.h H5Vprivate.h H5Zprivate.h H5config.h ## Number format detection diff --git a/src/hdf5.h b/src/hdf5.h index c5d2858..917cd5f 100644 --- a/src/hdf5.h +++ b/src/hdf5.h @@ -34,7 +34,6 @@ #include /* Object headers */ #include /* Property lists */ #include /* References */ -#include /* Ragged arrays */ #include /* Dataspaces */ #include /* Datatypes */ #include /* Data filters */ diff --git a/test/Dependencies b/test/Dependencies index d5ad857..8c5dbf4 100644 --- a/test/Dependencies +++ b/test/Dependencies @@ -24,7 +24,6 @@ h5test.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -71,7 +70,6 @@ big.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -118,7 +116,6 @@ bittests.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -164,7 +161,6 @@ chunk.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -201,7 +197,6 @@ cmpd_dset.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -248,7 +243,6 @@ dsets.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -295,7 +289,6 @@ dtypes.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -342,7 +335,6 @@ extend.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -389,7 +381,6 @@ external.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -436,7 +427,6 @@ fillval.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -483,7 +473,6 @@ flush1.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -530,7 +519,6 @@ flush2.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -577,7 +565,6 @@ gheap.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -640,7 +627,6 @@ iopipe.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -677,7 +663,6 @@ istore.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -732,7 +717,6 @@ lheap.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -781,7 +765,6 @@ links.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -828,7 +811,6 @@ mount.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -875,7 +857,6 @@ mtime.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -922,7 +903,6 @@ ohdr.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -973,7 +953,6 @@ overhead.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -987,44 +966,6 @@ overhead.lo: \ $(top_srcdir)/src/H5FDstream.h \ $(top_srcdir)/src/H5FDmulti.h \ $(top_srcdir)/src/H5FDlog.h -ragged.lo: \ - $(srcdir)/ragged.c \ - $(top_srcdir)/src/hdf5.h \ - $(top_srcdir)/src/H5public.h \ - $(top_builddir)/src/H5pubconf.h \ - $(top_srcdir)/src/H5api_adpt.h \ - $(top_srcdir)/src/H5Ipublic.h \ - $(top_srcdir)/src/H5Apublic.h \ - $(top_srcdir)/src/H5ACpublic.h \ - $(top_srcdir)/src/H5Bpublic.h \ - $(top_srcdir)/src/H5Dpublic.h \ - $(top_srcdir)/src/H5Epublic.h \ - $(top_srcdir)/src/H5Fpublic.h \ - $(top_srcdir)/src/H5FDpublic.h \ - $(top_srcdir)/src/H5Gpublic.h \ - $(top_srcdir)/src/H5HGpublic.h \ - $(top_srcdir)/src/H5HLpublic.h \ - $(top_srcdir)/src/H5MMpublic.h \ - $(top_srcdir)/src/H5Opublic.h \ - $(top_srcdir)/src/H5Ppublic.h \ - $(top_srcdir)/src/H5Zpublic.h \ - $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ - $(top_srcdir)/src/H5Spublic.h \ - $(top_srcdir)/src/H5Tpublic.h \ - $(top_srcdir)/src/H5FDcore.h \ - $(top_srcdir)/src/H5FDfamily.h \ - $(top_srcdir)/src/H5FDmpio.h \ - $(top_srcdir)/src/H5FDsec2.h \ - $(top_srcdir)/src/H5FDstdio.h \ - $(top_srcdir)/src/H5FDsrb.h \ - $(top_srcdir)/src/H5FDgass.h \ - $(top_srcdir)/src/H5FDdpss.h \ - $(top_srcdir)/src/H5FDstream.h \ - $(top_srcdir)/src/H5FDmulti.h \ - $(top_srcdir)/src/H5FDlog.h \ - $(top_srcdir)/src/H5private.h \ - $(top_builddir)/src/H5config.h stab.lo: \ $(srcdir)/stab.c \ $(srcdir)/h5test.h \ @@ -1048,7 +989,6 @@ stab.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1099,7 +1039,6 @@ tattr.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1224,7 +1163,6 @@ titerate.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1279,7 +1217,6 @@ trefer.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1319,7 +1256,6 @@ tselect.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1371,7 +1307,6 @@ tvltypes.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1411,7 +1346,6 @@ tvlstr.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1448,7 +1382,6 @@ unlink.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1495,7 +1428,6 @@ enum.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1542,7 +1474,6 @@ ttsafe.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1582,7 +1513,6 @@ ttsafe_dcreate.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1622,7 +1552,6 @@ ttsafe_error.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1662,7 +1591,6 @@ ttsafe_cancel.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1702,7 +1630,6 @@ ttsafe_acreate.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1742,7 +1669,6 @@ gass_write.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1789,7 +1715,6 @@ gass_read.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1836,7 +1761,6 @@ gass_append.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1883,7 +1807,6 @@ dpss_read.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1930,7 +1853,6 @@ dpss_write.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -1977,7 +1899,6 @@ srb_read.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -2024,7 +1945,6 @@ srb_write.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -2071,7 +1991,6 @@ srb_append.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ @@ -2118,7 +2037,6 @@ stream_test.lo: \ $(top_srcdir)/src/H5Ppublic.h \ $(top_srcdir)/src/H5Zpublic.h \ $(top_srcdir)/src/H5Rpublic.h \ - $(top_srcdir)/src/H5RApublic.h \ $(top_srcdir)/src/H5Spublic.h \ $(top_srcdir)/src/H5Tpublic.h \ $(top_srcdir)/src/H5FDcore.h \ diff --git a/test/Makefile.in b/test/Makefile.in index 257170b..4cd2df2 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -22,7 +22,7 @@ TEST_PROGS=testhdf5 lheap ohdr stab gheap hyperslab istore bittests dtypes \ flush1 flush2 enum gass_write gass_read gass_append dpss_write \ dpss_read srb_write srb_append srb_read ttsafe stream_test -TIMINGS=iopipe chunk ragged overhead +TIMINGS=iopipe chunk overhead ## The libh5test.a library provides common support code for the tests. We link ## this library statically because some systems can only link executables to @@ -45,7 +45,7 @@ MOSTLYCLEAN=cmpd_dset.h5 dataset.h5 extend.h5 istore.h5 tfile1.h5 tfile2.h5 \ extern_4a.raw extern_4b.raw iopipe.raw iopipe.h5 gheap0.h5 \ gheap1.h5 gheap2.h5 gheap3.h5 gheap4.h5 links.h5 chunk.h5 \ big.data big[0-9][0-9][0-9][0-9][0-9].h5 dtypes1.h5 dtypes2.h5 \ - tattr.h5 tselect.h5 mtime.h5 ragged.h5 unlink.h5 overhead.h5 \ + tattr.h5 tselect.h5 mtime.h5 unlink.h5 overhead.h5 \ fillval_[0-9].h5 fillval.raw mount_[0-9].h5 ttime.h5 trefer[12].h5 \ tvltypes.h5 tvlstr.h5 flush.h5 enum1.h5 titerate.h5 ttsafe.h5 \ tarray1.h5 tgenprop.h5 @@ -59,7 +59,7 @@ CLEAN=$(TIMINGS) TEST_SRC=big.c bittests.c chunk.c cmpd_dset.c dsets.c dtypes.c extend.c \ external.c fillval.c flush1.c flush2.c gheap.c h5test.c hyperslab.c \ iopipe.c istore.c lheap.c links.c mount.c mtime.c ohdr.c overhead.c \ - ragged.c stab.c tarray.c tattr.c testhdf5.c tfile.c tgenprop.c th5s.c \ + stab.c tarray.c tattr.c testhdf5.c tfile.c tgenprop.c th5s.c \ titerate.c tmeta.c trefer.c tselect.c ttime.c ttbbt.c tvltypes.c tvlstr.c \ unlink.c enum.c ttsafe.c ttsafe_dcreate.c ttsafe_error.c ttsafe_cancel.c \ ttsafe_acreate.c gass_write.c gass_read.c gass_append.c dpss_read.c \ @@ -144,9 +144,6 @@ chunk: chunk.lo mtime: mtime.lo @$(LT_LINK_EXE) $(CFLAGS) -o $@ mtime.lo $(LIB) $(LIBHDF5) $(LDFLAGS) $(LIBS) -ragged: ragged.lo - @$(LT_LINK_EXE) $(CFLAGS) -o $@ ragged.lo $(LIB) $(LIBHDF5) $(LDFLAGS) $(LIBS) - unlink: unlink.lo @$(LT_LINK_EXE) $(CFLAGS) -o $@ unlink.lo $(LIB) $(LIBHDF5) $(LDFLAGS) $(LIBS) diff --git a/test/ragged.c b/test/ragged.c deleted file mode 100644 index 2f5a3c4..0000000 --- a/test/ragged.c +++ /dev/null @@ -1,700 +0,0 @@ -/* - * Copyright © 1998 Spizella Software - * All rights reserved. - * - * Programmer: Robb Matzke - * Tuesday, August 25, 1998 - */ - -/* See H5private.h for how to include headers */ -#undef NDEBUG -#include -#include /*for performance monitoring*/ - -#ifdef STDC_HEADERS -# include -#endif - -#define NOTIFY_INTERVAL 2 /*seconds*/ -#define TIME_LIMIT 60 /*seconds*/ -#define CH_SIZE 8192*8 /*approx chunk size in bytes*/ -#define MAX_NELMTS 3000000 - -#define C_MTYPE unsigned int /*type in memory */ -#define H_MTYPE H5T_NATIVE_UINT /*type in memory */ -#define H_FTYPE H5T_NATIVE_UINT /*type in file */ - -typedef struct { - double percent; - size_t lo, hi; - size_t nhits; -} quant_t; - -#if 1 -/* Typical VBT sizes */ -static quant_t quant_g[] = { - {10.00, 1, 5, 0}, - {89.00, 6, 20, 0}, - { 0.90, 21, 100, 0}, - { 0.09, 101, 1000, 0}, - { 0.01, 1001, 10000, 0}, -}; -#elif 0 -/* Sizes for testing */ -static quant_t quant_g[] = { - {10.0, 1, 5, 0}, - {80.0, 6, 15, 0}, - {10.0, 16, 20, 0}, -}; -#elif 0 -/* Larger I/O */ -static quant_t quant_g[] = { - {10.0, 1, 1000, 0}, - {80.0, 1001, 5000, 0}, - {10.0, 5001, 10000, 0}, -}; -#else -/* All same size */ -static quant_t quant_g[] = { - {100.0, 1000, 1000, 0} -}; -#endif - -static volatile sig_atomic_t alarm_g = 0; -static volatile sig_atomic_t timeout_g = 0; - - -/*------------------------------------------------------------------------- - * Function: catch_alarm - * - * Purpose: Increments the global `alarm_g' and resets the alarm for - * another few seconds. - * - * Return: void - * - * Programmer: Robb Matzke - * Wednesday, August 26, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -static void -catch_alarm(int UNUSED signum) -{ - static int ncalls=0; - - ncalls++; - if (0==ncalls % NOTIFY_INTERVAL) { - alarm_g++; - } - if (timeout_g>0) --timeout_g; - alarm(1); -} - - -/*------------------------------------------------------------------------- - * Function: display_error_cb - * - * Purpose: Displays the error stack after printing "*FAILED*". - * - * Return: Success: 0 - * - * Failure: -1 - * - * Programmer: Robb Matzke - * Wednesday, March 4, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -static herr_t -display_error_cb (void UNUSED *client_data) -{ - putchar('\n'); - H5Eprint (stdout); - return 0; -} - - -/*------------------------------------------------------------------------- - * Function: rand_nelmts - * - * Purpose: Returns a the length of a 1-d array according to the - * probabilities described above. - * - * Return: Success: Number of elements - * - * Failure: never fails - * - * Programmer: Robb Matzke - * Thursday, August 20, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -static size_t -rand_nelmts(int reset_counters) -{ - double p = (rand() % 1000000)/1000000.0; - double total = 0.0; - size_t size=0, i; - static size_t ncalls=0; - - if (reset_counters) { - printf(" %9s %8s %8s\n", "Length", "Requsted", "Actual"); - printf(" --------------- -------- --------\n"); - for (i=0; i0; row+=i) { - for (i=0; i0; row+=i) { - - /* Clear data then read */ - HDmemset(size, 0, rows_at_once*sizeof(*size)); - HDmemset(buf, 0, rows_at_once*sizeof(*buf)); - if (H5RAread(ra, row, rows_at_once, H_MTYPE, size, - (void**)buf)<0) { - goto error; - } - - /* Check values read */ - for (i=0; i0; row+=i) { - - /* Read data */ - for (i=0; i ", link_open, NULL, NULL, NULL); - DISPATCH(H5G_RAGGED, "Ragged Array", H5Gopen, H5Gclose, - NULL, ragged_list2); #if 0 /* Name of this program without the path */ -- cgit v0.12