PyCObject C-API declarations
authorStefan Behnel <scoder@users.berlios.de>
Wed, 14 Oct 2009 13:59:18 +0000 (15:59 +0200)
committerStefan Behnel <scoder@users.berlios.de>
Wed, 14 Oct 2009 13:59:18 +0000 (15:59 +0200)
Cython/Includes/python_cobject.pxd [new file with mode: 0644]

diff --git a/Cython/Includes/python_cobject.pxd b/Cython/Includes/python_cobject.pxd
new file mode 100644 (file)
index 0000000..fc33c52
--- /dev/null
@@ -0,0 +1,36 @@
+cdef extern from "Python.h":
+    ctypedef void PyObject
+
+    ###########################################################################
+    # Warning:
+    #
+    # The CObject API is deprecated as of Python 3.1. Please switch to
+    # the new Capsules API.
+    ###########################################################################
+
+    int PyCObject_Check(object p)¶
+    #     Return true if its argument is a PyCObject.
+
+    object 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.
+
+    object 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(object self)¶
+    #     Return the object void * that the PyCObject self was created with.
+
+    void* PyCObject_GetDesc(object self)¶
+    #     Return the description void * that the PyCObject self was created with.
+
+    int PyCObject_SetVoidPtr(object 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.