[Pyrex] Callback with bound method
ha shao
hashao2 at myrealbox.com
Wed Jul 7 21:52:51 CEST 2004
It seems that the recommend way of wrapping callbacks is using bound
methods. By my attempt to do it failed:
ctypedef void (*cbfunc)(void *userdata)
cdef extern void add_cb(cbfunc cb, void *data)
cdef class CBClass:
cdef object _callback
def __init__(self, callback):
self._callback = callback
cdef void action(self, void *userdata):
self._callback(<object>userdata)
def addhook(acb, adata):
cdef CBClass cbobj
cbobj = CBClass(acb)
add_cb(cbobj.action, <void*> adata)
The above code will cause pyrexc to spit out:
test.pyx:14:16: C method can only be called
test.pyx:14:16: Cannot assign type 'void ((struct
__pyx_obj_4test_CBClass *,void (*)))' to 'void ((*)(void (*)))'
Did I misunderstood something? The version is 0.9.2.1
More information about the Pyrex
mailing list