summaryrefslogtreecommitdiffstats
path: root/src/H5FSprivate.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2006-07-25 01:40:00 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2006-07-25 01:40:00 (GMT)
commitd3548fa09c42810976b3824f032a2bec6e62bf4f (patch)
tree6a384e6e558bc6d0e21f82cdf1c3851c50abe888 /src/H5FSprivate.h
parent24112b0112517b3fb6063e4818b245b530c849c0 (diff)
downloadhdf5-d3548fa09c42810976b3824f032a2bec6e62bf4f.zip
hdf5-d3548fa09c42810976b3824f032a2bec6e62bf4f.tar.gz
hdf5-d3548fa09c42810976b3824f032a2bec6e62bf4f.tar.bz2
[svn-r12495] Description:
Checkpoint further work on object deletion code for fractal heaps. I believe everything is finally working for this sub-task. More regression tests soon, but I don't foresee any problems. Machines: FreeBSD 4.11 (sleipnir) Linux 2.4 (chicago)
Diffstat (limited to 'src/H5FSprivate.h')
-rw-r--r--src/H5FSprivate.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/H5FSprivate.h b/src/H5FSprivate.h
index 25383cc..2b840bd 100644
--- a/src/H5FSprivate.h
+++ b/src/H5FSprivate.h
@@ -42,6 +42,12 @@
#define H5FS_CLS_GHOST_OBJ 0x01 /* Objects in this class shouldn't be
* serialized to the file.
*/
+#define H5FS_CLS_SEPAR_OBJ 0x02 /* Objects in this class shouldn't
+ * participate in merge operations
+ */
+#define H5FS_CLS_MERGE_SYM 0x04 /* Objects in this class only merge
+ * with other objects in this class
+ */
/* Flags for H5FS_add() */
#define H5FS_ADD_DESERIALIZING 0x01 /* Free space is being deserialized
@@ -86,9 +92,9 @@ typedef struct H5FS_section_class_t {
/* Object methods */
herr_t (*serialize)(const struct H5FS_section_class_t *, const H5FS_section_info_t *, uint8_t *); /* Routine to serialize a "live" section into a buffer */
H5FS_section_info_t *(*deserialize)(const struct H5FS_section_class_t *, hid_t dxpl_id, const uint8_t *, haddr_t, hsize_t, unsigned *); /* Routine to deserialize a buffer into a "live" section */
- htri_t (*can_merge)(H5FS_section_info_t *, H5FS_section_info_t *, void *); /* Routine to determine if two nodes are mergable */
+ htri_t (*can_merge)(const H5FS_section_info_t *, const H5FS_section_info_t *, void *); /* Routine to determine if two nodes are mergable */
herr_t (*merge)(H5FS_section_info_t *, H5FS_section_info_t *, void *); /* Routine to merge two nodes */
- htri_t (*can_shrink)(H5FS_section_info_t *, void *); /* Routine to determine if node can shrink container */
+ htri_t (*can_shrink)(const H5FS_section_info_t *, void *); /* Routine to determine if node can shrink container */
herr_t (*shrink)(H5FS_section_info_t **, void *); /* Routine to shrink container */
herr_t (*free)(H5FS_section_info_t *); /* Routine to free node */
herr_t (*valid)(const struct H5FS_section_class_t *, const H5FS_section_info_t *); /* Routine to check if a section is valid */
@@ -147,6 +153,8 @@ H5_DLL H5FS_t *H5FS_open(H5F_t *f, hid_t dxpl_id, haddr_t fs_addr,
size_t nclasses, const H5FS_section_class_t *classes[], void *cls_init_udata);
H5_DLL herr_t H5FS_add(H5F_t *f, hid_t dxpl_id, H5FS_t *fspace,
H5FS_section_info_t *node, unsigned flags, void *op_data);
+H5_DLL herr_t H5FS_remove(H5F_t *f, hid_t dxpl_id, H5FS_t *fspace,
+ H5FS_section_info_t *node);
H5_DLL htri_t H5FS_find(H5F_t *f, hid_t dxpl_id, H5FS_t *fspace,
hsize_t request, H5FS_section_info_t **node);
H5_DLL herr_t H5FS_iterate(H5F_t *f, hid_t dxpl_id, H5FS_t *fspace, H5FS_operator_t op, void *op_data);