[Pyrex] Wrapping a (void *) cookie
    Joseph Koshy 
    jkoshy at FreeBSD.ORG
       
    Sun Apr 27 20:21:15 CEST 2003
    
    
  
Hi list,
I'd like to write a class in Pyrex that wraps a C 'handle' or 'cookie'.
For example:
    ---"cookie.pyx"---
    cdef extern from *:
      ctypedef void * cookie
      cookie cookie_factory()
      void cookie_eater(cookie c)
    ---
Defining the class as follows seems to result in the right C 
output.
    ---"cookie.pyx"---
    cdef class Cookie:
      cdef cookie c
results in:
    ---"cookie.c"---
    struct __pyx_obj_Cookie {
      PyObject_HEAD
      void (*c);
    };
    ---
However, the following is rejected:
    ---"cookie.c"--
    cdef class Cookie:
      cdef cookie c
      def __new__(self, cookie c):
	self.c = c
    ---Pyrex output---
    cookie.pyx:8:20: Can.pyx:8:20: Cannot convert Python object argument to \
        type 'void (*)'
    ---
I'm trying to wrap a C library that uses a number of such 'handles'.
What is the correct pyrex idiom for this task?
Regards,
Koshy
<jkoshy at freebsd.org>
    
    
More information about the Pyrex
mailing list