32 #include "../System/exception.h" 41 template <
typename RetVal>
49 virtual RetVal
invoke()
const = 0;
53 template <
typename RetVal>
58 : static_func(static_func)
67 RetVal (*static_func)();
71 template <
typename RetVal,
typename UserData>
77 : static_func(static_func), user_data(user_data)
83 return static_func(user_data);
92 template <
typename RetVal,
typename InstanceClass>
97 RetVal (InstanceClass::*member_func)())
98 : instance(instance), member_func(member_func)
104 return (instance->*member_func)();
109 RetVal (InstanceClass::*member_func)();
113 template <
typename RetVal,
typename InstanceClass,
typename UserData>
119 : instance(instance), member_func(member_func), user_data(user_data)
125 return (instance->*member_func)(user_data);
136 template <
typename RetVal,
class Functor>
155 template <
typename RetVal>
178 template<
typename UserData>
184 template<
class InstanceClass>
185 Callback_0(InstanceClass *instance, RetVal (InstanceClass::*
function)())
190 template<
class InstanceClass,
typename UserData>
196 void set(RetVal (*
function)())
201 template<
typename UserData>
207 template<
class InstanceClass>
208 void set(InstanceClass *instance, RetVal (InstanceClass::*
function)())
213 template<
class InstanceClass,
typename UserData>
214 void set(InstanceClass *instance, RetVal (InstanceClass::*
function)(
UserData),
const UserData &user_data)
221 impl = std::shared_ptr< Callback_Impl_0<RetVal> >();
226 return impl->invoke();
235 std::shared_ptr< Callback_Impl_0<RetVal> > impl;
240 template <
typename RetVal>
253 template<
class Functor>
Functor functor
Definition: callback_0.h:150
(Internal ClanLib Class)
Definition: callback_0.h:42
Callback_Impl_0_member_user(InstanceClass *instance, RetVal(InstanceClass::*member_func)(UserData), const UserData &user_data)
Definition: callback_0.h:117
Callback_Impl_0_static(RetVal(*static_func)())
Definition: callback_0.h:57
RetVal invoke() const
Definition: callback_0.h:81
InstanceClass * instance
Definition: callback_0.h:107
virtual ~Callback_Impl_0()
Definition: callback_0.h:45
RetVal invoke() const
Definition: callback_0.h:102
Callback_0_functor.
Definition: callback_0.h:241
(Internal ClanLib Class)
Definition: callback_0.h:93
Callback_0_functor(const Callback_0_functor ©)
Definition: callback_0.h:248
Callback_Impl_0_static_user(RetVal(*static_func)(UserData), const UserData &user_data)
Definition: callback_0.h:75
UserData user_data
Definition: callback_0.h:88
(Internal ClanLib Class)
Definition: callback_0.h:72
virtual RetVal invoke() const =0
(Internal ClanLib Class)
Definition: callback_0.h:137
Callback_0.
Definition: callback_0.h:156
Callback_0_functor(Functor functor)
Definition: callback_0.h:254
Callback_0(const Callback_0 ©)
Definition: callback_0.h:163
InstanceClass * instance
Definition: callback_0.h:128
RetVal invoke() const
Definition: callback_0.h:62
Definition: userdata.h:47
Callback_0(RetVal(*function)())
Definition: callback_0.h:173
Callback_0_functor()
Definition: callback_0.h:244
(Internal ClanLib Class)
Definition: callback_0.h:114
bool is_null() const
Definition: callback_0.h:229
Callback_0(InstanceClass *instance, RetVal(InstanceClass::*function)(UserData), const UserData &user_data)
Definition: callback_0.h:191
Callback_0(RetVal(*function)(UserData), const UserData &user_data)
Definition: callback_0.h:179
Callback_Impl_0_functor(Functor functor)
Definition: callback_0.h:140
Callback_0(InstanceClass *instance, RetVal(InstanceClass::*function)())
Definition: callback_0.h:185
(Internal ClanLib Class)
Definition: callback_0.h:54
RetVal invoke() const
Definition: callback_0.h:224
void clear()
Definition: callback_0.h:219
RetVal invoke() const
Definition: callback_0.h:145
UserData user_data
Definition: callback_0.h:132
Callback_0(Callback_Impl_0< RetVal > *impl)
Definition: callback_0.h:168
Callback_0()
Definition: callback_0.h:159
Callback_Impl_0_member(InstanceClass *instance, RetVal(InstanceClass::*member_func)())
Definition: callback_0.h:96
RetVal invoke() const
Definition: callback_0.h:123