summaryrefslogtreecommitdiffstats
path: root/src/H5Ptest.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2003-06-04 15:28:04 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2003-06-04 15:28:04 (GMT)
commitd1042619aedf19a2b0704cd901eedc7856ea8def (patch)
tree935aefa7d1a1bbe81379b566587431f4d0dc26b8 /src/H5Ptest.c
parentb56429d0863efa2595417847e92eab73b43bc5ae (diff)
downloadhdf5-d1042619aedf19a2b0704cd901eedc7856ea8def.zip
hdf5-d1042619aedf19a2b0704cd901eedc7856ea8def.tar.gz
hdf5-d1042619aedf19a2b0704cd901eedc7856ea8def.tar.bz2
[svn-r6952] Purpose:
Code cleanup Description: Move testing routines into their own module, to avoid linking them into user's applications needlessly. Platforms tested: FreeBSD 4.8 (sleipnir) w/C++ FreeBSD 4.8 (sleipnir) w/parallel h5committested
Diffstat (limited to 'src/H5Ptest.c')
-rw-r--r--src/H5Ptest.c131
1 files changed, 131 insertions, 0 deletions
diff --git a/src/H5Ptest.c b/src/H5Ptest.c
new file mode 100644
index 0000000..56a5f1c
--- /dev/null
+++ b/src/H5Ptest.c
@@ -0,0 +1,131 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by the Board of Trustees of the University of Illinois. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the files COPYING and Copyright.html. COPYING can be found at the root *
+ * of the source code distribution tree; Copyright.html can be found at the *
+ * root level of an installed copy of the electronic HDF5 document set and *
+ * is linked from the top-level documents page. It can also be found at *
+ * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
+ * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/* Programmer: Quincey Koziol <koziol@ncsa.uiuc.edu>
+ * Saturday May 31, 2003
+ *
+ * Purpose: Generic Property Testing Functions
+ */
+
+#define H5P_PACKAGE /*suppress error about including H5Ppkg */
+#define H5P_TESTING /*suppress warning about H5P testing funcs*/
+
+/* Private header files */
+#include "H5private.h" /* Generic Functions */
+#include "H5Eprivate.h" /* Error handling */
+#include "H5Iprivate.h" /* IDs */
+#include "H5Ppkg.h" /* Property lists */
+
+/* Pablo mask */
+#define PABLO_MASK H5Ptest_mask
+
+/* Interface initialization */
+#define INTERFACE_INIT NULL
+static int interface_initialize_g = 0;
+
+/* Local variables */
+
+/* Local typedefs */
+
+
+/*--------------------------------------------------------------------------
+ NAME
+ H5P_get_class_path_test
+ PURPOSE
+ Routine to query the full path of a generic property list class
+ USAGE
+ char *H5P_get_class_name_test(pclass_id)
+ hid_t pclass_id; IN: Property class to query
+ RETURNS
+ Success: Pointer to a malloc'ed string containing the full path of class
+ Failure: NULL
+ DESCRIPTION
+ This routine retrieves the full path name of a generic property list
+ class, starting with the root of the class hierarchy.
+ The pointer to the name must be free'd by the user for successful calls.
+
+ GLOBAL VARIABLES
+ COMMENTS, BUGS, ASSUMPTIONS
+ DO NOT USE THIS FUNCTION FOR ANYTHING EXCEPT TESTING H5P_get_class_path()
+ EXAMPLES
+ REVISION LOG
+--------------------------------------------------------------------------*/
+char *
+H5P_get_class_path_test(hid_t pclass_id)
+{
+ H5P_genclass_t *pclass; /* Property class to query */
+ char *ret_value; /* return value */
+
+ FUNC_ENTER_NOAPI(H5P_get_class_path_test, NULL);
+
+ /* Check arguments. */
+ if (NULL == (pclass = H5I_object_verify(pclass_id, H5I_GENPROP_CLS)))
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "not a property class");
+
+ /* Get the property list class path */
+ if ((ret_value=H5P_get_class_path(pclass))==NULL)
+ HGOTO_ERROR(H5E_PLIST, H5E_NOTFOUND, NULL, "unable to query full path of class");
+
+done:
+ FUNC_LEAVE_NOAPI(ret_value);
+} /* H5P_get_class_path_test() */
+
+
+/*--------------------------------------------------------------------------
+ NAME
+ H5P_open_class_path_test
+ PURPOSE
+ Routine to open a [copy of] a class with its full path name
+ USAGE
+ hid_t H5P_open_class_name_test(path)
+ const char *path; IN: Full path name of class to open [copy of]
+ RETURNS
+ Success: ID of generic property class
+ Failure: NULL
+ DESCRIPTION
+ This routine opens [a copy] of the class indicated by the full path.
+
+ GLOBAL VARIABLES
+ COMMENTS, BUGS, ASSUMPTIONS
+ DO NOT USE THIS FUNCTION FOR ANYTHING EXCEPT TESTING H5P_open_class_path()
+ EXAMPLES
+ REVISION LOG
+--------------------------------------------------------------------------*/
+hid_t
+H5P_open_class_path_test(const char *path)
+{
+ H5P_genclass_t *pclass=NULL;/* Property class to query */
+ hid_t ret_value; /* Return value */
+
+ FUNC_ENTER_NOAPI(H5P_open_class_path_test, FAIL);
+
+ /* Check arguments. */
+ if (NULL == path || *path=='\0')
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid class path");
+
+ /* Open the property list class */
+ if ((pclass=H5P_open_class_path(path))==NULL)
+ HGOTO_ERROR(H5E_PLIST, H5E_NOTFOUND, FAIL, "unable to find class with full path");
+
+ /* Get an atom for the class */
+ if ((ret_value=H5I_register(H5I_GENPROP_CLS, pclass))<0)
+ HGOTO_ERROR(H5E_PLIST, H5E_CANTREGISTER, FAIL, "unable to atomize property list class");
+
+done:
+ if(ret_value<0 && pclass)
+ H5P_close_class(pclass);
+
+ FUNC_LEAVE_NOAPI(ret_value);
+} /* H5P_open_class_path_test() */
+