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