summaryrefslogtreecommitdiffstats
path: root/src/H5Oprivate.h
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1997-08-12 22:44:46 (GMT)
committerRobb Matzke <matzke@llnl.gov>1997-08-12 22:44:46 (GMT)
commitfb947c34b142578774d5bb657c0b3e2a9b4781c7 (patch)
treec695cac8789bbe5fc92a5324e3027856bf3858bc /src/H5Oprivate.h
parent326981f421b993815657daecc8b37bd732513d82 (diff)
downloadhdf5-fb947c34b142578774d5bb657c0b3e2a9b4781c7.zip
hdf5-fb947c34b142578774d5bb657c0b3e2a9b4781c7.tar.gz
hdf5-fb947c34b142578774d5bb657c0b3e2a9b4781c7.tar.bz2
[svn-r25] ./src/H5AC.c
We sort the cache before a complete flush because it might be more efficient to write things back to disk in order of increasing address. If you want the old way then undef the SORT_BY_ADDR constant at the top of H5AC.c I haven't determined which systems and I/O libraries this helps or hurts. (This is currently off because of a bug I need to track down that causes qsort() to run for a really long time). ./src/H5B.c Fixed a couple more bugs. ./src/H5Eprivate.h ./src/H5Eproto.h Added major H5E_DIRECTORY and minor H5E_EXISTS, H5E_COMPLEN. ./src/H5G.c Added directory-aware functions. The heap and B-tree are created when a directory is created instead of when the first symbol is added. This simplifies symbol table entry caching for the directory since the cached value never changes now. ./src/H5Gnode.c ./src/H5Gprivate.h Fine tuned the B-tree K values for symbol tables assuming an average number of symbols is about 100 per directory. The tuning minimizes storage space. Fixed a return value in H5G_node_cmp(). ./src/H5H.c ./src/H5Hprivate.h Moved some macros the the header file. ./src/H5O.c ./src/H5Ocont.c ./src/H5Onull.c ./src/H5Ostab.c Changed the arguments for the decode method for messages. The second argument is the raw message size. Added a class variable for native message size. Added H5O_reset() to free memory used internally by a message. ./src/H5Oname.c NEW ./src/H5Oprivate.h ./src/Makefile The object name message. ./src/hdf5port.h Added defn for HDstrdup()
Diffstat (limited to 'src/H5Oprivate.h')
-rw-r--r--src/H5Oprivate.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/H5Oprivate.h b/src/H5Oprivate.h
index 40d4a36..f56146c 100644
--- a/src/H5Oprivate.h
+++ b/src/H5Oprivate.h
@@ -41,13 +41,14 @@
typedef struct H5O_class_t {
intn id; /*message type ID on disk */
const char *name; /*message name for debugging */
- void *(*decode)(hdf5_file_t*,const uint8*); /*decode mesg */
+ size_t native_size; /*size of native message */
+ void *(*decode)(hdf5_file_t*,size_t,const uint8*);
herr_t (*encode)(hdf5_file_t*,size_t,uint8*,const void*);
- void *(*fast)(const H5G_entry_t*, void*); /*get from stab ent */
+ void *(*fast)(const H5G_entry_t*, void*); /*get from stab ent*/
hbool_t (*cache)(H5G_entry_t*,const void*); /*put into entry */
void *(*copy)(const void*,void*); /*copy native value */
- size_t (*size)(hdf5_file_t*,const void*); /*size of raw value */
- void *(*free)(void*); /*free native data struct */
+ size_t (*raw_size)(hdf5_file_t*,const void*); /*sizeof raw val */
+ herr_t (*reset)(void*); /*free nested data structures */
herr_t (*debug)(hdf5_file_t*,const void*, FILE*, intn, intn);
} H5O_class_t;
@@ -87,6 +88,16 @@ typedef struct H5O_t {
extern const H5O_class_t H5O_NULL[1];
/*
+ * Object name message.
+ */
+#define H5O_NAME_ID 0x000d
+extern const H5O_class_t H5O_NAME[1];
+
+typedef struct H5O_name_t {
+ char *s; /*ptr to malloc'd memory */
+} H5O_name_t;
+
+/*
* Object header continuation message.
*/
#define H5O_CONT_ID 0x0010
@@ -121,6 +132,7 @@ const void *H5O_peek (hdf5_file_t *f, haddr_t addr, const H5O_class_t *type,
intn H5O_modify (hdf5_file_t *f, haddr_t addr, H5G_entry_t *ent,
hbool_t *ent_modified, const H5O_class_t *type,
intn overwrite, const void *mesg);
+herr_t H5O_reset (const H5O_class_t *type, void *native);
herr_t H5O_debug (hdf5_file_t *f, haddr_t addr, FILE *stream,
intn indent, intn fwidth);