Warning
The CObject API is deprecated as of Python 2.7. Please switch to the new Capsules API.
PyCObject
This subtype of PyObject
represents an opaque value, useful for C
extension modules who need to pass an opaque value (as a void*
pointer) through Python code to other C code. It is often used to make a C
function pointer defined in one module available to other modules, so the
regular import mechanism can be used to access C APIs defined in dynamically
loaded modules.
int PyCObject_Check(PyObject *p)
Return true if its argument is a PyCObject
.
PyObject* PyCObject_FromVoidPtr(void* cobj, void (*destr)(void *))
Return value: New reference.Create a PyCObject
from the void *
cobj. The destr function
will be called when the object is reclaimed, unless it is NULL.
PyObject* PyCObject_FromVoidPtrAndDesc(void* cobj, void* desc, void (*destr)(void *, void *))
Return value: New reference.Create a PyCObject
from the void *
cobj. The destr
function will be called when the object is reclaimed. The desc argument can
be used to pass extra callback data for the destructor function.
void* PyCObject_AsVoidPtr(PyObject* self)
Return the object void *
that the PyCObject
self was
created with.
void* PyCObject_GetDesc(PyObject* self)
Return the description void *
that the PyCObject
self was
created with.
int PyCObject_SetVoidPtr(PyObject* self, void* cobj)
Set the void pointer inside self to cobj. The PyCObject
must not
have an associated destructor. Return true on success, false on failure.