summaryrefslogtreecommitdiffstats
path: root/src/H5Mprivate.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5Mprivate.h')
-rw-r--r--src/H5Mprivate.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/H5Mprivate.h b/src/H5Mprivate.h
new file mode 100644
index 0000000..a1fb6cc
--- /dev/null
+++ b/src/H5Mprivate.h
@@ -0,0 +1,86 @@
+/****************************************************************************
+ * NCSA HDF *
+ * Software Development Group *
+ * National Center for Supercomputing Applications *
+ * University of Illinois at Urbana-Champaign *
+ * 605 E. Springfield, Champaign IL 61820 *
+ * *
+ * For conditions of distribution and use, see the accompanying *
+ * hdf/COPYING file. *
+ * *
+ ****************************************************************************/
+
+/* $Id$ */
+
+/*
+ * This file contains macros & information for meta-objects
+ */
+
+#ifndef H5MPRIVATE_H
+#define H5MPRIVATE_H
+
+#include "H5Mproto.h" /* Include Public Definitions */
+
+/*
+ * A function table record for accessing interfaces which use the "meta"
+ * interface to create/access/release objects.
+ */
+
+typedef struct meta_func_t
+ {
+ hobjtype_t type; /* Object type this interface is for */
+ hatom_t (*create) (hatom_t , hobjtype_t, const char *); /* Object creation function */
+ hatom_t (*access) (hatom_t ); /* Object access function */
+ hatom_t (*copy) (hatom_t ); /* Object copy function */
+ hatom_t (*find_name) (hatom_t , hobjtype_t, const char *); /* Find first object */
+ uint32 (*name_len) (hatom_t ); /* Get length of object name */
+ herr_t (*get_name) (hatom_t , char *); /* Get object name */
+ herr_t (*set_name) (hatom_t , const char *); /* Set object name */
+ hatom_t (*search) (hatom_t , hobjtype_t, const char *); /* Search for list of objects */
+ hatom_t (*index) (hatom_t , hobjtype_t, uint32); /* Get the OID for the n'th object */
+ herr_t (*flush) (hatom_t ); /* Flush the object to disk */
+ herr_t (*delete) (hatom_t ); /* Delete an object from file */
+ hatom_t (*get_parent) (hatom_t ); /* Get the parent object of an object */
+ herr_t (*release) (hatom_t ); /* End access to an object */
+ }
+meta_func_t;
+
+meta_func_t meta_func_arr[]={
+ { /* Template object meta-functions (defined in H5C.c) */
+ H5_TEMPLATE, /* File-Creation Template Type ID */
+ H5C_create, /* File-Creation Template Create */
+ NULL,
+ H5C_copy, /* File-Creation Template Copy */
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ H5C_release /* File-Creation Template Release */
+ },
+ { /* Datatype object meta-functions (defined in H5T.c) */
+ H5_DATATYPE, /* Datatype Type ID */
+ H5T_create, /* Datatype object functions */
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ H5T_release
+ }
+ };
+
+/* Private functions, not part of the publicly documented API */
+
+#endif /* H5MPRIVATE_H */
+