diff options
Diffstat (limited to 'typewrappers.c')
-rw-r--r-- | typewrappers.c | 269 |
1 files changed, 269 insertions, 0 deletions
diff --git a/typewrappers.c b/typewrappers.c new file mode 100644 index 0000000..0d8ac97 --- /dev/null +++ b/typewrappers.c @@ -0,0 +1,269 @@ +/* + * types.c: converter functions between the internal representation + * and the Python objects + * + * Copyright (C) 2005, 2007 Red Hat, Inc. + * + * Daniel Veillard <veillard@redhat.com> + */ + +#include <config.h> + +/* Horrible kludge to work around even more horrible name-space pollution + * via Python.h. That file includes /usr/include/python2.5/pyconfig*.h, + * which has over 180 autoconf-style HAVE_* definitions. Shame on them. */ +#undef HAVE_PTHREAD_H + +#include "typewrappers.h" + +PyObject * +libvirt_intWrap(int val) +{ + PyObject *ret; + ret = PyInt_FromLong((long) val); + return (ret); +} + +PyObject * +libvirt_longWrap(long val) +{ + PyObject *ret; + ret = PyInt_FromLong(val); + return (ret); +} + +PyObject * +libvirt_ulongWrap(unsigned long val) +{ + PyObject *ret; + ret = PyLong_FromLong(val); + return (ret); +} + +PyObject * +libvirt_longlongWrap(long long val) +{ + PyObject *ret; + ret = PyLong_FromUnsignedLongLong((unsigned long long) val); + return (ret); +} + +PyObject * +libvirt_charPtrWrap(char *str) +{ + PyObject *ret; + + if (str == NULL) { + Py_INCREF(Py_None); + return (Py_None); + } + ret = PyString_FromString(str); + free(str); + return (ret); +} + +PyObject * +libvirt_constcharPtrWrap(const char *str) +{ + PyObject *ret; + + if (str == NULL) { + Py_INCREF(Py_None); + return (Py_None); + } + ret = PyString_FromString(str); + return (ret); +} + +PyObject * +libvirt_charPtrConstWrap(const char *str) +{ + PyObject *ret; + + if (str == NULL) { + Py_INCREF(Py_None); + return (Py_None); + } + ret = PyString_FromString(str); + return (ret); +} + +PyObject * +libvirt_virDomainPtrWrap(virDomainPtr node) +{ + PyObject *ret; + + if (node == NULL) { + Py_INCREF(Py_None); + return (Py_None); + } + ret = + PyCObject_FromVoidPtrAndDesc((void *) node, (char *) "virDomainPtr", + NULL); + return (ret); +} + +PyObject * +libvirt_virNetworkPtrWrap(virNetworkPtr node) +{ + PyObject *ret; + + if (node == NULL) { + Py_INCREF(Py_None); + return (Py_None); + } + ret = + PyCObject_FromVoidPtrAndDesc((void *) node, (char *) "virNetworkPtr", + NULL); + return (ret); +} + +PyObject * +libvirt_virInterfacePtrWrap(virInterfacePtr node) +{ + PyObject *ret; + + if (node == NULL) { + Py_INCREF(Py_None); + return (Py_None); + } + ret = + PyCObject_FromVoidPtrAndDesc((void *) node, (char *) "virInterfacePtr", + NULL); + return (ret); +} + +PyObject * +libvirt_virStoragePoolPtrWrap(virStoragePoolPtr node) +{ + PyObject *ret; + + if (node == NULL) { + Py_INCREF(Py_None); + return (Py_None); + } + ret = + PyCObject_FromVoidPtrAndDesc((void *) node, (char *) "virStoragePoolPtr", + NULL); + return (ret); +} + +PyObject * +libvirt_virStorageVolPtrWrap(virStorageVolPtr node) +{ + PyObject *ret; + + if (node == NULL) { + Py_INCREF(Py_None); + return (Py_None); + } + ret = + PyCObject_FromVoidPtrAndDesc((void *) node, (char *) "virStorageVolPtr", + NULL); + return (ret); +} + +PyObject * +libvirt_virConnectPtrWrap(virConnectPtr node) +{ + PyObject *ret; + + if (node == NULL) { + Py_INCREF(Py_None); + return (Py_None); + } + ret = + PyCObject_FromVoidPtrAndDesc((void *) node, (char *) "virConnectPtr", + NULL); + return (ret); +} + +PyObject * +libvirt_virNodeDevicePtrWrap(virNodeDevicePtr node) +{ + PyObject *ret; + + if (node == NULL) { + Py_INCREF(Py_None); + return (Py_None); + } + ret = + PyCObject_FromVoidPtrAndDesc((void *) node, (char *) "virNodeDevicePtr", + NULL); + return (ret); +} + +PyObject * +libvirt_virSecretPtrWrap(virSecretPtr node) +{ + PyObject *ret; + + if (node == NULL) { + Py_INCREF(Py_None); + return Py_None; + } + ret = PyCObject_FromVoidPtrAndDesc(node, (char *) "virSecretPtr", NULL); + return (ret); +} + +PyObject * +libvirt_virEventHandleCallbackWrap(virEventHandleCallback node) +{ + PyObject *ret; + + if (node == NULL) { + Py_INCREF(Py_None); + printf("%s: WARNING - Wrapping None\n", __func__); + return (Py_None); + } + ret = + PyCObject_FromVoidPtrAndDesc((void *) node, (char *) "virEventHandleCallback", + NULL); + return (ret); +} + +PyObject * +libvirt_virEventTimeoutCallbackWrap(virEventTimeoutCallback node) +{ + PyObject *ret; + + if (node == NULL) { + printf("%s: WARNING - Wrapping None\n", __func__); + Py_INCREF(Py_None); + return (Py_None); + } + ret = + PyCObject_FromVoidPtrAndDesc((void *) node, (char *) "virEventTimeoutCallback", + NULL); + return (ret); +} + +PyObject * +libvirt_virFreeCallbackWrap(virFreeCallback node) +{ + PyObject *ret; + + if (node == NULL) { + Py_INCREF(Py_None); + return (Py_None); + } + ret = + PyCObject_FromVoidPtrAndDesc((void *) node, (char *) "virFreeCallback", + NULL); + return (ret); +} + +PyObject * +libvirt_virVoidPtrWrap(void* node) +{ + PyObject *ret; + + if (node == NULL) { + Py_INCREF(Py_None); + return (Py_None); + } + ret = + PyCObject_FromVoidPtrAndDesc((void *) node, (char *) "void*", + NULL); + return (ret); +} |