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