summaryrefslogtreecommitdiffstats
path: root/src/H5Oprivate.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2004-11-22 17:14:11 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2004-11-22 17:14:11 (GMT)
commit35ffb5bd1341b0b49096fae2554ba18046a30958 (patch)
tree76125ea42d3f13837e6fedd4c8ba950cf8456c91 /src/H5Oprivate.h
parentd58b9bf5b22522cd51949941f1a61949467dc354 (diff)
downloadhdf5-35ffb5bd1341b0b49096fae2554ba18046a30958.zip
hdf5-35ffb5bd1341b0b49096fae2554ba18046a30958.tar.gz
hdf5-35ffb5bd1341b0b49096fae2554ba18046a30958.tar.bz2
[svn-r9556] Purpose:
Code cleanup & optimization Description: Improve ADF/CGNS benchmark by reducing the number of internal attribute copies made during creations, opens and writes. Added new H5O_iterate() routine for iterating through messages of a certain type in the object header (attributes are the only message currently that can have multiple instances in the object header). Cross-pollinated various minor code cleanups to reduce diffs between branches. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) Too minor to require h5committest
Diffstat (limited to 'src/H5Oprivate.h')
-rw-r--r--src/H5Oprivate.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/H5Oprivate.h b/src/H5Oprivate.h
index f70443a..3e256e2 100644
--- a/src/H5Oprivate.h
+++ b/src/H5Oprivate.h
@@ -49,6 +49,10 @@
#define H5O_FLAG_SHARED 0x02u
#define H5O_FLAG_BITS (H5O_FLAG_CONSTANT|H5O_FLAG_SHARED)
+/* Flags for updating messages */
+#define H5O_UPDATE_TIME 0x01u
+#define H5O_UPDATE_DATA_ONLY 0x02u
+
/* Header message IDs */
#define H5O_NULL_ID 0x0000 /* Null Message. */
#define H5O_SDSPACE_ID 0x0001 /* Simple Dataspace Message. */
@@ -220,6 +224,10 @@ typedef struct H5O_stab_t {
haddr_t heap_addr; /*address of name heap */
} H5O_stab_t;
+/* Typedef for iteration operations */
+typedef herr_t (*H5O_operator_t)(const void *mesg/*in*/, unsigned idx,
+ void *operator_data/*in,out*/);
+
/* General message operators */
H5_DLL herr_t H5O_create(H5F_t *f, hid_t dxpl_id, size_t size_hint,
H5G_entry_t *ent/*out*/);
@@ -232,7 +240,7 @@ H5_DLL htri_t H5O_exists(H5G_entry_t *ent, unsigned type_id, int sequence,
H5_DLL void *H5O_read(H5G_entry_t *ent, unsigned type_id, int sequence,
void *mesg, hid_t dxpl_id);
H5_DLL int H5O_modify(H5G_entry_t *ent, unsigned type_id,
- int overwrite, unsigned flags, unsigned update_time, const void *mesg, hid_t dxpl_id);
+ int overwrite, unsigned flags, unsigned update_flags, const void *mesg, hid_t dxpl_id);
H5_DLL struct H5O_t * H5O_protect(H5G_entry_t *ent, hid_t dxpl_id);
H5_DLL herr_t H5O_unprotect(H5G_entry_t *ent, struct H5O_t *oh, hid_t dxpl_id);
H5_DLL int H5O_append(H5F_t *f, hid_t dxpl_id, struct H5O_t *oh, unsigned type_id,
@@ -254,6 +262,8 @@ H5_DLL size_t H5O_raw_size(unsigned type_id, H5F_t *f, const void *mesg);
H5_DLL herr_t H5O_get_share(unsigned type_id, H5F_t *f, const void *mesg, H5O_shared_t *share);
H5_DLL herr_t H5O_delete(H5F_t *f, hid_t dxpl_id, haddr_t addr);
H5_DLL herr_t H5O_get_info(H5G_entry_t *ent, H5O_stat_t *ostat, hid_t dxpl_id);
+H5_DLL herr_t H5O_iterate(const H5G_entry_t *ent, unsigned type_id, H5O_operator_t op,
+ void *op_data, hid_t dxpl_id);
H5_DLL herr_t H5O_debug_id(hid_t type_id, H5F_t *f, hid_t dxpl_id, const void *mesg, FILE *stream, int indent, int fwidth);
H5_DLL herr_t H5O_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE * stream, int indent,
int fwidth);