2005-02-04 03:59:05 +08:00
|
|
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
2007-02-07 22:56:24 +08:00
|
|
|
* Copyright by The HDF Group. *
|
2005-02-04 03:59:05 +08:00
|
|
|
* Copyright by the Board of Trustees of the University of Illinois. *
|
|
|
|
* All rights reserved. *
|
|
|
|
* *
|
|
|
|
* This file is part of HDF5. The full HDF5 copyright notice, including *
|
|
|
|
* terms governing use, modification, and redistribution, is contained in *
|
2017-04-18 03:32:16 +08:00
|
|
|
* the COPYING file, which can be found at the root of the source code *
|
|
|
|
* distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
|
|
|
|
* If you do not have access to either file, you may request a copy from *
|
|
|
|
* help@hdfgroup.org. *
|
2005-02-04 03:59:05 +08:00
|
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
*
|
|
|
|
* Created: H5B2private.h
|
|
|
|
* Jan 31 2005
|
2020-07-21 02:50:10 +08:00
|
|
|
* Quincey Koziol
|
2005-02-04 03:59:05 +08:00
|
|
|
*
|
|
|
|
* Purpose: Private header for library accessible B-tree routines.
|
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _H5B2private_H
|
|
|
|
#define _H5B2private_H
|
|
|
|
|
|
|
|
/* Private headers needed by this file */
|
2016-12-03 00:07:04 +08:00
|
|
|
#include "H5ACprivate.h" /* Metadata cache */
|
|
|
|
#include "H5Fprivate.h" /* File access */
|
2005-02-04 03:59:05 +08:00
|
|
|
|
|
|
|
/**************************/
|
|
|
|
/* Library Private Macros */
|
|
|
|
/**************************/
|
|
|
|
|
2005-08-14 04:53:35 +08:00
|
|
|
|
2005-02-04 03:59:05 +08:00
|
|
|
/****************************/
|
|
|
|
/* Library Private Typedefs */
|
|
|
|
/****************************/
|
|
|
|
|
|
|
|
/* B-tree IDs for various internal things. */
|
|
|
|
typedef enum H5B2_subid_t {
|
2005-02-08 09:03:48 +08:00
|
|
|
H5B2_TEST_ID = 0, /* B-tree is for testing (do not use for actual data) */
|
2006-08-17 23:49:06 +08:00
|
|
|
H5B2_FHEAP_HUGE_INDIR_ID, /* B-tree is for fractal heap indirectly accessed, non-filtered 'huge' objects */
|
|
|
|
H5B2_FHEAP_HUGE_FILT_INDIR_ID, /* B-tree is for fractal heap indirectly accessed, filtered 'huge' objects */
|
|
|
|
H5B2_FHEAP_HUGE_DIR_ID, /* B-tree is for fractal heap directly accessed, non-filtered 'huge' objects */
|
|
|
|
H5B2_FHEAP_HUGE_FILT_DIR_ID, /* B-tree is for fractal heap directly accessed, filtered 'huge' objects */
|
2006-10-02 18:24:03 +08:00
|
|
|
H5B2_GRP_DENSE_NAME_ID, /* B-tree is for indexing 'name' field for "dense" link storage in groups */
|
|
|
|
H5B2_GRP_DENSE_CORDER_ID, /* B-tree is for indexing 'creation order' field for "dense" link storage in groups */
|
2006-12-07 06:19:52 +08:00
|
|
|
H5B2_SOHM_INDEX_ID, /* B-tree is an index for shared object header messages */
|
|
|
|
H5B2_ATTR_DENSE_NAME_ID, /* B-tree is for indexing 'name' field for "dense" attribute storage on objects */
|
2007-02-07 10:18:17 +08:00
|
|
|
H5B2_ATTR_DENSE_CORDER_ID, /* B-tree is for indexing 'creation order' field for "dense" attribute storage on objects */
|
2016-04-05 15:12:56 +08:00
|
|
|
H5B2_CDSET_ID, /* B-tree is for non-filtered chunked dataset storage w/ >1 unlim dims */
|
|
|
|
H5B2_CDSET_FILT_ID, /* B-tree is for filtered chunked dataset storage w/ >1 unlim dims */
|
2015-12-30 01:06:36 +08:00
|
|
|
H5B2_TEST2_ID, /* Another B-tree is for testing (do not use for actual data) */
|
2006-08-10 11:42:51 +08:00
|
|
|
H5B2_NUM_BTREE_ID /* Number of B-tree IDs (must be last) */
|
2005-02-04 03:59:05 +08:00
|
|
|
} H5B2_subid_t;
|
|
|
|
|
2005-03-11 00:41:28 +08:00
|
|
|
/* Define the operator callback function pointer for H5B2_iterate() */
|
|
|
|
typedef int (*H5B2_operator_t)(const void *record, void *op_data);
|
|
|
|
|
2006-10-02 18:24:03 +08:00
|
|
|
/* Define the 'found' callback function pointer for H5B2_find(), H5B2_neighbor() & H5B2_index() */
|
2005-03-11 00:41:28 +08:00
|
|
|
typedef herr_t (*H5B2_found_t)(const void *record, void *op_data);
|
|
|
|
|
2005-03-11 22:05:32 +08:00
|
|
|
/* Define the 'modify' callback function pointer for H5B2_modify() */
|
|
|
|
typedef herr_t (*H5B2_modify_t)(void *record, void *op_data, hbool_t *changed);
|
|
|
|
|
2006-08-10 11:42:51 +08:00
|
|
|
/* Define the 'remove' callback function pointer for H5B2_remove() & H5B2_delete() */
|
|
|
|
typedef herr_t (*H5B2_remove_t)(const void *record, void *op_data);
|
|
|
|
|
2005-03-10 03:39:20 +08:00
|
|
|
/* Comparisons for H5B2_neighbor() call */
|
|
|
|
typedef enum H5B2_compare_t {
|
|
|
|
H5B2_COMPARE_LESS, /* Records with keys less than query value */
|
|
|
|
H5B2_COMPARE_GREATER /* Records with keys greater than query value */
|
|
|
|
} H5B2_compare_t;
|
|
|
|
|
2005-02-04 03:59:05 +08:00
|
|
|
/*
|
2006-08-10 11:42:51 +08:00
|
|
|
* Each class of object that can be pointed to by a B-tree has a
|
2005-02-04 03:59:05 +08:00
|
|
|
* variable of this type that contains class variables and methods.
|
|
|
|
*/
|
2006-08-10 11:42:51 +08:00
|
|
|
typedef struct H5B2_class_t H5B2_class_t;
|
|
|
|
struct H5B2_class_t {
|
|
|
|
H5B2_subid_t id; /* ID of B-tree class, as found in file */
|
[svn-r17740] Description:
Refactor v2 B-tree code to take creation parameters to H5B2_create() as
a struct (instead of individual arguments), call the client's class "cls"
instead of "type" internally, and add client class name to client class struct.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Mac OS X/32 10.6.1 (amazon) in debug mode
Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2009-10-25 03:16:06 +08:00
|
|
|
const char *name; /* Name of B-tree class, for debugging */
|
2006-08-10 11:42:51 +08:00
|
|
|
size_t nrec_size; /* Size of native (memory) record */
|
2005-02-04 03:59:05 +08:00
|
|
|
|
[svn-r17943] Description:
Finish refactoring v2 B-trees so that they can have client callback
context provided to the encode/decode callbacks.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Mac OS X/32 10.6.2 (amazon) in debug mode
Mac OS X/32 10.6.2 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2009-12-02 00:45:27 +08:00
|
|
|
/* Extensible array client callback methods */
|
|
|
|
void *(*crt_context)(void *udata); /* Create context for other client callbacks */
|
|
|
|
herr_t (*dst_context)(void *ctx); /* Destroy client callback context */
|
[svn-r19396] Description:
Bring back various modifications to the v2 B-trees that were introduced
in the revise_chunks branch but aren't dependent on any file format or API
changes.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, w/threadsafe, in production mode
Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.4 (amazon) in debug mode
Mac OS X/32 10.6.4 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
Mac OS X/32 10.6.4 (amazon) w/parallel, in debug mode
2010-09-16 19:38:10 +08:00
|
|
|
herr_t (*store)(void *nrecord, const void *udata); /* Store application record in native record table */
|
2016-02-19 04:50:37 +08:00
|
|
|
herr_t (*compare)(const void *rec1, const void *rec2, int *result); /* Compare two native records */
|
[svn-r19396] Description:
Bring back various modifications to the v2 B-trees that were introduced
in the revise_chunks branch but aren't dependent on any file format or API
changes.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, w/threadsafe, in production mode
Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.4 (amazon) in debug mode
Mac OS X/32 10.6.4 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
Mac OS X/32 10.6.4 (amazon) w/parallel, in debug mode
2010-09-16 19:38:10 +08:00
|
|
|
herr_t (*encode)(uint8_t *raw, const void *record, void *ctx); /* Encode record from native form to disk storage form */
|
|
|
|
herr_t (*decode)(const uint8_t *raw, void *record, void *ctx); /* Decode record from disk storage form to native form */
|
2015-08-22 11:08:43 +08:00
|
|
|
herr_t (*debug)(FILE *stream, int indent, int fwidth, /* Print a record for debugging */
|
2015-11-21 04:24:23 +08:00
|
|
|
const void *record, const void *ctx);
|
2006-08-10 11:42:51 +08:00
|
|
|
};
|
2005-02-04 03:59:05 +08:00
|
|
|
|
[svn-r17740] Description:
Refactor v2 B-tree code to take creation parameters to H5B2_create() as
a struct (instead of individual arguments), call the client's class "cls"
instead of "type" internally, and add client class name to client class struct.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Mac OS X/32 10.6.1 (amazon) in debug mode
Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2009-10-25 03:16:06 +08:00
|
|
|
/* v2 B-tree creation parameters */
|
|
|
|
typedef struct H5B2_create_t {
|
|
|
|
const H5B2_class_t *cls; /* v2 B-tree client class */
|
[svn-r17893] Descrption:
Remove old shim H5B2 routines from refactoring, rename new routines to
old routine names and switch all users of the H5B2 interface back to the old
routine names now that the switch to using the more current open -> <operation>
-> pattern is used for all the H5B2 code. This is the final change before
adding a context to the H5B2 client encode/decode callbacks.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Mac OS X/32 10.6.2 (amazon) in debug mode
Mac OS X/32 10.6.2 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2009-11-15 11:38:58 +08:00
|
|
|
uint32_t node_size; /* Size of each node (in bytes) */
|
|
|
|
uint32_t rrec_size; /* Size of raw record (in bytes) */
|
|
|
|
uint8_t split_percent; /* % full to split nodes */
|
|
|
|
uint8_t merge_percent; /* % full to merge nodes */
|
[svn-r17740] Description:
Refactor v2 B-tree code to take creation parameters to H5B2_create() as
a struct (instead of individual arguments), call the client's class "cls"
instead of "type" internally, and add client class name to client class struct.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Mac OS X/32 10.6.1 (amazon) in debug mode
Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2009-10-25 03:16:06 +08:00
|
|
|
} H5B2_create_t;
|
|
|
|
|
2006-07-16 03:49:04 +08:00
|
|
|
/* v2 B-tree metadata statistics info */
|
|
|
|
typedef struct H5B2_stat_t {
|
2006-09-05 00:37:41 +08:00
|
|
|
unsigned depth; /* Depth of B-tree */
|
2006-10-02 18:24:03 +08:00
|
|
|
hsize_t nrecords; /* Number of records */
|
2006-07-16 03:49:04 +08:00
|
|
|
} H5B2_stat_t;
|
|
|
|
|
[svn-r17785] Description:
Further refactor v2 B-tree code to bring it closer to modern data
structure designed in the library, mainly by introducing a H5B2_t type so that
the v2 B-tree could be held open, but not require the B-tree header to be
protected the whole time. A few other minor tweaks as well.
Also, remove unused 'dirty' flag from fractal heap header.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Mac OS X/32 10.6.1 (amazon) in debug mode
Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2009-10-29 21:58:52 +08:00
|
|
|
/* v2 B-tree info (forward decl - defined in H5B2pkg.h) */
|
|
|
|
typedef struct H5B2_t H5B2_t;
|
|
|
|
|
|
|
|
|
2005-11-07 11:13:53 +08:00
|
|
|
/*****************************/
|
|
|
|
/* Library-private Variables */
|
|
|
|
/*****************************/
|
2006-06-27 22:45:06 +08:00
|
|
|
|
[svn-r17657] Description:
Refactor the v2 B-tree code to use an open & close call internally, in
preparation for making those part of the library private APIs for dealing with
v2 B-trees.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Mac OS X/32 10.6.1 (amazon) in debug mode
Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2009-10-16 06:26:46 +08:00
|
|
|
|
2005-02-04 03:59:05 +08:00
|
|
|
/***************************************/
|
|
|
|
/* Library-private Function Prototypes */
|
|
|
|
/***************************************/
|
2018-03-16 05:54:30 +08:00
|
|
|
H5_DLL H5B2_t *H5B2_create(H5F_t *f, const H5B2_create_t *cparam,
|
[svn-r17943] Description:
Finish refactoring v2 B-trees so that they can have client callback
context provided to the encode/decode callbacks.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Mac OS X/32 10.6.2 (amazon) in debug mode
Mac OS X/32 10.6.2 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2009-12-02 00:45:27 +08:00
|
|
|
void *ctx_udata);
|
2018-03-16 05:54:30 +08:00
|
|
|
H5_DLL H5B2_t *H5B2_open(H5F_t *f, haddr_t addr, void *ctx_udata);
|
[svn-r17842] Description:
Further refactor v2 B-tree code toward being able to pass context info
down to encode/decode client callbacks:
- Separate H5B2_create call to return H5B2_t structure
- Make loading the v2 B-tree header pick up the client class from the
ID stored in the file. Simplify some internal API calls as a
result.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Mac OS X/32 10.6.1 (amazon) in debug mode
Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2009-11-06 03:16:15 +08:00
|
|
|
H5_DLL herr_t H5B2_get_addr(const H5B2_t *bt2, haddr_t *addr/*out*/);
|
2018-03-16 05:54:30 +08:00
|
|
|
H5_DLL herr_t H5B2_insert(H5B2_t *bt2, void *udata);
|
|
|
|
H5_DLL herr_t H5B2_iterate(H5B2_t *bt2, H5B2_operator_t op, void *op_data);
|
|
|
|
H5_DLL htri_t H5B2_find(H5B2_t *bt2, void *udata, H5B2_found_t op, void *op_data);
|
|
|
|
H5_DLL herr_t H5B2_index(H5B2_t *bt2, H5_iter_order_t order, hsize_t idx,
|
[svn-r17848] Description:
Further refactoring v2 B-trees so that they can get context to the
encode/decode client callbacks:
- Switch tests to using refactored routines
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Mac OS X/32 10.6.1 (amazon) in debug mode
Mac OS X/32 10.6.1 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2009-11-07 21:12:06 +08:00
|
|
|
H5B2_found_t op, void *op_data);
|
2018-03-16 05:54:30 +08:00
|
|
|
H5_DLL herr_t H5B2_neighbor(H5B2_t *bt2, H5B2_compare_t range, void *udata,
|
|
|
|
H5B2_found_t op, void *op_data);
|
|
|
|
H5_DLL herr_t H5B2_modify(H5B2_t *bt2, void *udata, H5B2_modify_t op,
|
|
|
|
void *op_data);
|
|
|
|
H5_DLL herr_t H5B2_update(H5B2_t *bt2, void *udata, H5B2_modify_t op,
|
|
|
|
void *op_data);
|
|
|
|
H5_DLL herr_t H5B2_remove(H5B2_t *b2, void *udata, H5B2_remove_t op,
|
|
|
|
void *op_data);
|
|
|
|
H5_DLL herr_t H5B2_remove_by_idx(H5B2_t *bt2, H5_iter_order_t order,
|
|
|
|
hsize_t idx, H5B2_remove_t op, void *op_data);
|
[svn-r17893] Descrption:
Remove old shim H5B2 routines from refactoring, rename new routines to
old routine names and switch all users of the H5B2 interface back to the old
routine names now that the switch to using the more current open -> <operation>
-> pattern is used for all the H5B2 code. This is the final change before
adding a context to the H5B2 client encode/decode callbacks.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Mac OS X/32 10.6.2 (amazon) in debug mode
Mac OS X/32 10.6.2 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2009-11-15 11:38:58 +08:00
|
|
|
H5_DLL herr_t H5B2_get_nrec(const H5B2_t *bt2, hsize_t *nrec);
|
2018-03-16 05:54:30 +08:00
|
|
|
H5_DLL herr_t H5B2_size(H5B2_t *bt2, hsize_t *btree_size);
|
|
|
|
H5_DLL herr_t H5B2_close(H5B2_t *bt2);
|
|
|
|
H5_DLL herr_t H5B2_delete(H5F_t *f, haddr_t addr, void *ctx_udata,
|
|
|
|
H5B2_remove_t op, void *op_data);
|
|
|
|
H5_DLL herr_t H5B2_depend(H5B2_t *bt2, H5AC_proxy_entry_t *parent);
|
2016-04-05 15:12:56 +08:00
|
|
|
H5_DLL herr_t H5B2_patch_file(H5B2_t *fa, H5F_t *f);
|
2005-02-04 03:59:05 +08:00
|
|
|
|
2006-07-16 03:49:04 +08:00
|
|
|
/* Statistics routines */
|
[svn-r17893] Descrption:
Remove old shim H5B2 routines from refactoring, rename new routines to
old routine names and switch all users of the H5B2 interface back to the old
routine names now that the switch to using the more current open -> <operation>
-> pattern is used for all the H5B2 code. This is the final change before
adding a context to the H5B2 client encode/decode callbacks.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Mac OS X/32 10.6.2 (amazon) in debug mode
Mac OS X/32 10.6.2 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
2009-11-15 11:38:58 +08:00
|
|
|
H5_DLL herr_t H5B2_stat_info(H5B2_t *bt2, H5B2_stat_t *info);
|
2006-07-16 03:49:04 +08:00
|
|
|
|
2005-02-04 03:59:05 +08:00
|
|
|
#endif /* _H5B2private_H */
|
|
|
|
|