summaryrefslogtreecommitdiffstats
path: root/python/wrap_objs.h
diff options
context:
space:
mode:
Diffstat (limited to 'python/wrap_objs.h')
-rw-r--r--python/wrap_objs.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/python/wrap_objs.h b/python/wrap_objs.h
new file mode 100644
index 00000000..c0889a10
--- /dev/null
+++ b/python/wrap_objs.h
@@ -0,0 +1,65 @@
+#ifndef __PYXMLSEC_WRAP_OBJS_H__
+#define __PYXMLSEC_WRAP_OBJS_H__
+
+#undef _POSIX_C_SOURCE
+#include <Python.h>
+
+#include <libxml/xpath.h>
+#include <libxml/xmlmemory.h>
+
+#include <xmlsec/xmlsec.h>
+
+typedef struct {
+ PyObject_HEAD
+ xmlDocPtr obj;
+} xmlDocPtr_object;
+
+typedef struct {
+ PyObject_HEAD
+ xmlNodePtr obj;
+} xmlNodePtr_object;
+
+typedef struct {
+ PyObject_HEAD
+ xmlOutputBufferPtr obj;
+} xmlOutputBufferPtr_object;
+
+typedef struct {
+ PyObject_HEAD
+ xmlNodeSetPtr obj;
+} xmlNodeSetPtr_object;
+
+typedef struct {
+ PyObject_HEAD
+ xmlSecPtr obj;
+} xmlSecPtr_object;
+
+/* Functions to wrap LibXML Python objects -> LibXML C objects */
+#define xmlDocPtr_get(v) (((v) == Py_None) ? NULL : (((xmlDocPtr_object *)(PyObject_GetAttr(v, PyString_FromString("_o"))))->obj))
+#define xmlNodePtr_get(v) (((v) == Py_None) ? NULL : (((xmlNodePtr_object *)(PyObject_GetAttr(v, PyString_FromString("_o"))))->obj))
+#define xmlNodeSetPtr_get(v) (((v) == Py_None) ? NULL : (((xmlNodeSetPtr_object *)(PyObject_GetAttr(v, PyString_FromString("_o"))))->obj))
+#define xmlOutputBufferPtr_get(v) (((v) == Py_None) ? NULL : (((xmlOutputBufferPtr_object *)(PyObject_GetAttr(v, PyString_FromString("_o"))))->obj))
+
+/* Functions to wrap XMLSec Python objects -> XMLSec C objects */
+#define xmlSecPtr_get(v) (((v) == Py_None) ? NULL : (((xmlSecPtr_object *)(PyObject_GetAttr(v, PyString_FromString("_o"))))->obj))
+
+/* Functions to wrap Python objects -> C objects */
+#define PythonFile_get(v) (((v) == Py_None) ? NULL : (PyFile_Check(v) ? (PyFile_AsFile(v)) : stdout))
+xmlChar **PythonStringList_get(PyObject *list_obj);
+
+PyObject *wrap_int(int val);
+PyObject *wrap_charPtr(char *str);
+PyObject *wrap_charPtrConst(const char *str);
+
+PyObject *wrap_xmlCharPtr(xmlChar *str);
+PyObject *wrap_xmlCharPtrConst(const xmlChar *str);
+PyObject *wrap_xmlDocPtr(xmlDocPtr doc);
+PyObject *wrap_xmlNodePtr(xmlNodePtr node);
+PyObject *wrap_xmlNodeSetPtr(xmlNodeSetPtr nset);
+PyObject *wrap_xmlOutputBufferPtr(xmlOutputBufferPtr buf);
+
+PyObject *wrap_xmlSecPtr(xmlSecPtr ptr);
+PyObject *wrap_xmlSecBytePtr(xmlSecByte *str);
+PyObject *wrap_xmlSecBytePtrConst(const xmlSecByte *str);
+
+#endif /* __PYXMLSEC_WRAP_OBJS_H__ */