From b6c73fd19c79ce9c548090466e5a514a61da36ae Mon Sep 17 00:00:00 2001 From: Valery Febvre Date: Fri, 2 Apr 2004 00:54:07 +0000 Subject: Initial commit --- python/wrap_objs.h | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 python/wrap_objs.h (limited to 'python/wrap_objs.h') 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 + +#include +#include + +#include + +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__ */ -- cgit