summaryrefslogtreecommitdiffstats
path: root/libcsoap/libxml/nthreads.h
diff options
context:
space:
mode:
Diffstat (limited to 'libcsoap/libxml/nthreads.h')
-rw-r--r--libcsoap/libxml/nthreads.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/libcsoap/libxml/nthreads.h b/libcsoap/libxml/nthreads.h
new file mode 100644
index 0000000..9a7e362
--- /dev/null
+++ b/libcsoap/libxml/nthreads.h
@@ -0,0 +1,66 @@
+/**
+ * Summary: interfaces for thread handling
+ * Description: set of generic threading related routines
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_NTHREADS_H__
+#define __XML_NTHREADS_H__
+
+#include <libxml/xmlversion.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * xmlMutex are a simple mutual exception locks.
+ */
+typedef struct _xmlMutex xmlMutex;
+typedef xmlMutex *xmlMutexPtr;
+
+/*
+ * xmlRMutex are reentrant mutual exception locks.
+ */
+typedef struct _xmlRMutex xmlRMutex;
+typedef xmlRMutex *xmlRMutexPtr;
+
+#ifdef __cplusplus
+}
+#endif
+
+#include <libxml/globals.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct _xmlThreadHandler
+{
+ xmlMutexPtr (XMLCALL *newMutex) (void);
+ void (XMLCALL *lockMutex) (xmlMutexPtr);
+ void (XMLCALL *unlockMutex) (xmlMutexPtr);
+ void (XMLCALL *freeMutex) (xmlMutexPtr);
+
+ xmlRMutexPtr (XMLCALL *newRMutex) (void);
+ void (XMLCALL *lockRMutex) (xmlRMutexPtr);
+ void (XMLCALL *unlockRMutex) (xmlRMutexPtr);
+ void (XMLCALL *freeRMutex) (xmlRMutexPtr);
+
+ xmlGlobalStatePtr (XMLCALL *getGlobalState)(void);
+ int (XMLCALL *getThreadId) (void);
+ int (XMLCALL *isMainThread) (void);
+};
+typedef struct _xmlThreadHandler xmlThreadHandler;
+typedef xmlThreadHandler* xmlThreadHandlerPtr;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* __XML_THREADS_H__ */