def _wrap_in_callback(self, function, instance): @decorator def safe_callback(wrapped, instance, args, kwargs): return _call_http_cb( wrapped, instance, (), kwargs, self.name, self.allow_failure ) unbound = function.__get__(None, instance.__class__) unbound_callback = safe_callback(unbound) bound_callback = unbound_callback.__get__(instance, instance.__class__) return ffi.callback('http_cb', bound_callback)
def _wrap_in_callback(self, function, instance): @decorator def safe_callback(wrapped, instance, args, kwargs): buffer, data_len = args[1:] data = ffi.string(buffer[0:data_len]) return _call_http_cb( wrapped, instance, (data, ), kwargs, self.name, self.allow_failure ) unbound = function.__get__(None, instance.__class__) unbound_callback = safe_callback(unbound) bound_callback = unbound_callback.__get__(instance, instance.__class__) return ffi.callback('http_data_cb', bound_callback)