summaryrefslogtreecommitdiffstats
path: root/src/H5Fprivate.h
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1997-10-24 21:03:10 (GMT)
committerRobb Matzke <matzke@llnl.gov>1997-10-24 21:03:10 (GMT)
commit833e82fec5f654c1ed93a6e4e4266f280e20311c (patch)
tree4c1f5d776652cfef707455fbee246af0a5780a80 /src/H5Fprivate.h
parente1e488bd4758a0e5b85a8e04052146a93c3e5751 (diff)
downloadhdf5-833e82fec5f654c1ed93a6e4e4266f280e20311c.zip
hdf5-833e82fec5f654c1ed93a6e4e4266f280e20311c.tar.gz
hdf5-833e82fec5f654c1ed93a6e4e4266f280e20311c.tar.bz2
[svn-r134] Changes since 19971023
---------------------- ./config/conclude.in Test work when `.' isn't in $PATH. ./src/H5F.c ./src/H5Fcore.c NEW ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsec2.c ./src/H5Fstdio.c ./src/Makefile.in ./MANIFEST Added the in-core temporary file driver as an exercise to clean up some of the H5F package. It speeds up `testhdf5 -o stab' by 25 percent! If you want to try it you'll need to recompile everything with `-DH5F_LOW_DFLT=H5F_LOW_CORE'. Don't expect testhdf5 to ever work since creating a file, closing it, and then opening it for read-only will fail.
Diffstat (limited to 'src/H5Fprivate.h')
-rw-r--r--src/H5Fprivate.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/H5Fprivate.h b/src/H5Fprivate.h
index 1a4d286..ae7e75c 100644
--- a/src/H5Fprivate.h
+++ b/src/H5Fprivate.h
@@ -236,7 +236,8 @@ typedef enum {
* Define the low-level file interface.
*/
typedef struct H5F_low_class_t {
- struct H5F_low_t *(*open)(const char*, uintn);
+ hbool_t (*access)(const char*, int, H5F_search_t*);
+ struct H5F_low_t *(*open)(const char*, uintn, H5F_search_t*);
herr_t (*close)(struct H5F_low_t*);
herr_t (*read)(struct H5F_low_t*, haddr_t, size_t, uint8*);
herr_t (*write)(struct H5F_low_t*, haddr_t, size_t, const uint8*);
@@ -261,6 +262,13 @@ typedef struct H5F_low_t {
H5F_fileop_t op; /* Previous file operation */
haddr_t cur; /* Current file position */
} stdio;
+
+ /* In-core temp file */
+ struct {
+ uint8 *mem; /* Mem image of the file */
+ size_t size; /* Current file size */
+ size_t alloc; /* Current size of MEM buffer */
+ } core;
} u;
} H5F_low_t;
@@ -271,6 +279,7 @@ typedef struct H5F_low_t {
#endif
extern const H5F_low_class_t H5F_LOW_SEC2[]; /* Posix section 2 */
extern const H5F_low_class_t H5F_LOW_STDIO[]; /* Posix stdio */
+extern const H5F_low_class_t H5F_LOW_CORE[]; /* In-core temp file */
/*
@@ -381,8 +390,10 @@ herr_t H5F_block_read (H5F_t *f, haddr_t addr, size_t size, void *buf);
herr_t H5F_block_write (H5F_t *f, haddr_t addr, size_t size, void *buf);
/* Functions that operate directly on low-level files */
+hbool_t H5F_low_access (const H5F_low_class_t *type, const char *name,
+ int mode, H5F_search_t *key);
H5F_low_t *H5F_low_open (const H5F_low_class_t *type, const char *name,
- uintn flags);
+ uintn flags, H5F_search_t *key);
H5F_low_t *H5F_low_close (H5F_low_t *lf);
size_t H5F_low_size (H5F_low_t *lf);
herr_t H5F_low_read (H5F_low_t *lf, haddr_t addr, size_t size, uint8 *buf);