#ifndef CALLBACK_H_ #define CALLBACK_H_ #include class IntHolder { public: IntHolder(int a, int b) : num_(a), value_(b) {;} IntHolder(IntHolder &tmplte) : num_(tmplte.num_), value_(tmplte.value_){;} int get_number(void) { return this->num_; } int get_value(void) { return this->value_; } private: int num_; int value_; }; class IntHolderCallback { public: typedef int (*iMethod)(IntHolder *param, void *user_data); IntHolderCallback(){;} IntHolderCallback(iMethod method, void *user_data); virtual ~IntHolderCallback(){;} int cy_execute(IntHolder *param); private: iMethod _method; void *_user_data; }; class Callback { public: typedef double (*Method)(void *param, void *user_data); Callback(); Callback(Method method, void *user_data); virtual ~Callback(); double cy_execute(void *parameter); bool IsCythonCall() { return is_cy_call; } protected: bool is_cy_call; private: Method _method; void *_user_data; }; #endif