OSDN Git Service

Success build TortoiseMerge.
[tortoisegit/TortoiseGitJp.git] / src / TortoiseMerge / svninclude / svn_dso.h
diff --git a/src/TortoiseMerge/svninclude/svn_dso.h b/src/TortoiseMerge/svninclude/svn_dso.h
new file mode 100644 (file)
index 0000000..38c1f99
--- /dev/null
@@ -0,0 +1,106 @@
+/**\r
+ * @copyright\r
+ * ====================================================================\r
+ * Copyright (c) 2006, 2008 CollabNet.  All rights reserved.\r
+ *\r
+ * This software is licensed as described in the file COPYING, which\r
+ * you should have received as part of this distribution.  The terms\r
+ * are also available at http://subversion.tigris.org/license-1.html.\r
+ * If newer versions of this license are posted there, you may use a\r
+ * newer version instead, at your option.\r
+ *\r
+ * This software consists of voluntary contributions made by many\r
+ * individuals.  For exact contribution history, see the revision\r
+ * history and logs, available at http://subversion.tigris.org/.\r
+ * ====================================================================\r
+ * @endcopyright\r
+ *\r
+ * @file svn_dso.h\r
+ * @brief DSO loading routines\r
+ */\r
+\r
+\r
+\f\r
+#ifndef SVN_DSO_H\r
+#define SVN_DSO_H\r
+\r
+#include <apr_dso.h>\r
+\r
+#include "svn_types.h"\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif /* __cplusplus */\r
+\r
+/**\r
+ * Initialize the DSO loading routines.\r
+ *\r
+ * @note This should be called prior to the creation of any pool that\r
+ *       is passed to a function that comes from a DSO, otherwise you\r
+ *       risk having the DSO unloaded before all pool cleanup callbacks\r
+ *       that live in the DSO have been executed.  If it is not called\r
+ *       prior to @c svn_dso_load being used for the first time there\r
+ *       will be a best effort attempt made to initialize the subsystem,\r
+ *       but it will not be entirely thread safe and it risks running\r
+ *       into the previously mentioned problems with DSO unloading and\r
+ *       pool cleanup callbacks.\r
+ *\r
+ * Returns svn_error_t object with corresponding apr_err returned by\r
+ * underlying calls. In case of no error returns @c SVN_NO_ERROR.\r
+ *\r
+ * @since New in 1.6.\r
+ */\r
+svn_error_t *\r
+svn_dso_initialize2(void);\r
+\r
+/**\r
+ * Initialize the DSO loading routines.\r
+ *\r
+ * @note This should be called prior to the creation of any pool that\r
+ *       is passed to a function that comes from a DSO, otherwise you\r
+ *       risk having the DSO unloaded before all pool cleanup callbacks\r
+ *       that live in the DSO have been executed.  If it is not called\r
+ *       prior to @c svn_dso_load being used for the first time there\r
+ *       will be a best effort attempt made to initialize the subsystem,\r
+ *       but it will not be entirely thread safe and it risks running\r
+ *       into the previously mentioned problems with DSO unloading and\r
+ *       pool cleanup callbacks.\r
+ *\r
+ * Calls svn_dso_initialize2(void) upon error aborts.\r
+ *\r
+ * @deprecated Provided for backwards compatibility with the 1.5 API.\r
+ *\r
+ * @since New in 1.4.\r
+ */\r
+SVN_DEPRECATED\r
+void\r
+svn_dso_initialize(void);\r
+\r
+\r
+#if APR_HAS_DSO\r
+\r
+/**\r
+ * Attempt to load @a libname, returning it in @a dso.\r
+ *\r
+ * If @a libname cannot be loaded set @a dso to NULL and return\r
+ * @c SVN_NO_ERROR.\r
+ *\r
+ * @note Due to pool lifetime issues DSOs are all loaded into a global\r
+ *       pool, so you must be certain that there is a bounded number of\r
+ *       them that will ever be loaded by the system, otherwise you will\r
+ *       leak memory.\r
+ *\r
+ * @since New in 1.4.\r
+ */\r
+svn_error_t *\r
+svn_dso_load(apr_dso_handle_t **dso,\r
+             const char *libname);\r
+\r
+#endif /* APR_HAS_DSO */\r
+\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif /* __cplusplus */\r
+\r
+#endif /* SVN_DSO_H */\r