#!/usr/bin/env python
import api
import api_correct

def cb_fun(str):
    print 'cb_fun received %r' % str
    print 'cb_fun returns 42'
    return 42

# First try the fixed API
info = api_correct.info()
info.flag = 7
info.cb_fun = api_correct.cb_fun_t(cb_fun)
print 'Calling do_callback with flag=%d' % info.flag
ret = api_correct.do_callback(info)
print 'do_callback returned %d' % ret


# And now the one generated by Py++
from ctypes import pointer
info = api.info()
info.flag = 7
info.cb_fun = pointer(api.cb_fun_t(cb_fun))
print 'Calling do_callback with flag=%d' % info.flag
ret = api.do_callback(info)
print 'do_callback returned %d' % ret


