diff options
| author | Frederic Peters <fpeters@entrouvert.com> | 2008-04-29 12:02:52 +0000 |
|---|---|---|
| committer | Frederic Peters <fpeters@entrouvert.com> | 2008-04-29 12:02:52 +0000 |
| commit | 58d3f1b48bd41f0e0854fd801675891dcc11033c (patch) | |
| tree | 973506253ba3652f524628e76a23e945f6d3110f /bindings/lang_python_wrapper_top.c | |
| parent | 3c0712d3ecac0cf74a88e31324de64c534bed8ad (diff) | |
| download | lasso-58d3f1b48bd41f0e0854fd801675891dcc11033c.tar.gz lasso-58d3f1b48bd41f0e0854fd801675891dcc11033c.tar.xz lasso-58d3f1b48bd41f0e0854fd801675891dcc11033c.zip | |
[project @ fpeters@0d.be-20071008100008-wd4uyitms1xfz1wv]
completed support for get/setters of list of objects
s = lasso.Saml2Assertion()
s2 = lasso.Saml2AuthnStatement()
s2.sessionIndex = 'plop'
s3 = lasso.Saml2AuthnStatement()
s3.sessionIndex = 'plop2'
s.authnStatement = (s2, s3)
print s.authnStatement
Original author: Frederic Peters <fpeters@0d.be>
Date: 2007-10-08 12:00:08.145000+02:00
Diffstat (limited to 'bindings/lang_python_wrapper_top.c')
| -rw-r--r-- | bindings/lang_python_wrapper_top.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/bindings/lang_python_wrapper_top.c b/bindings/lang_python_wrapper_top.c index f3ef9380..740ecadf 100644 --- a/bindings/lang_python_wrapper_top.c +++ b/bindings/lang_python_wrapper_top.c @@ -1,4 +1,5 @@ #include <Python.h> +#include <structmember.h> #include <lasso/lasso.h> GQuark lasso_wrapper_key; @@ -7,6 +8,7 @@ GQuark lasso_wrapper_key; typedef struct { PyObject_HEAD GObject *obj; + PyObject *typename; } PyGObjectPtr; static PyTypeObject PyGObjectPtrType; @@ -21,6 +23,7 @@ PyGObjectPtr_dealloc(PyGObjectPtr *self) self->obj->ref_count); #endif g_object_unref(self->obj); + Py_XDECREF(self->typename); self->ob_type->tp_free((PyObject*)self); } @@ -41,6 +44,7 @@ PyGObjectPtr_New(GObject *obj) self = (PyGObjectPtr*)PyObject_NEW(PyGObjectPtr, &PyGObjectPtrType); g_object_set_qdata_full(obj, lasso_wrapper_key, self, NULL); self->obj = obj; + self->typename = PyString_FromString(G_OBJECT_TYPE_NAME(obj)+5); } return (PyObject*)self; } @@ -54,6 +58,12 @@ PyGObjectPtr_repr(PyGObjectPtr *obj) obj->obj->ref_count); } +static PyMemberDef PyGObjectPtr_members[] = { + {"typename", T_OBJECT, offsetof(PyGObjectPtr, typename), 0, "typename"}, + {NULL} +}; + + static PyTypeObject PyGObjectPtrType = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ @@ -77,5 +87,13 @@ static PyTypeObject PyGObjectPtrType = { 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/ "PyGObjectPtr objects", /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + 0, /* tp_methods */ + PyGObjectPtr_members, /* tp_members */ }; |
