29 #ifndef __casadbus_functor_h__
30 #define __casadbus_functor_h__
51 template<
class T1,
class T2>
class args02 :
public args {
61 template<
class T1,
class T2,
class T3>
class args03 :
public args {
73 template<
class T1,
class T2,
class T3,
class T4>
class args04 :
public args {
105 std::string
state( )
const {
return ptr.state( ); }
113 template <
class C>
friend f make( C *o,
void (C::*i)( ) );
114 template <
class C,
class P1>
friend f make( C *o,
void (C::*i)(P1) );
115 template <
class C,
class P1,
class P2>
friend f make( C *o,
void (C::*i)(P1,P2) );
116 template <
class C,
class P1,
class P2,
class P3>
friend f make( C *o,
void (C::*i)(P1,P2,P3) );
117 template <
class C,
class P1,
class P2,
class P3,
class P4>
friend f make( C *o,
void (C::*i)(P1,P2,P3,P4) );
121 template <
class C>
class f00 :
public f_ {
131 template <
class C,
class P1>
class f01 :
public f_ {
137 if ( a ) { (*this)(a->
one()); }
145 template <
class C,
class P1,
class P2>
class f02 :
public f_ {
159 template <
class C,
class P1,
class P2,
class P3>
class f03 :
public f_ {
165 if ( a ) { (*this)(a->
one(),a->
two(),a->
three()); }
173 template <
class C,
class P1,
class P2,
class P3,
class P4>
class f04 :
public f_ {
187 template <
class C>
f make( C *o,
void (C::*i)( ) )
189 template <
class C,
class P1>
f make( C *o,
void (C::*i)(P1) )
191 template <
class C,
class P1,
class P2>
f make( C *o,
void (C::*i)(P1,P2) )
193 template <
class C,
class P1,
class P2,
class P3>
f make( C *o,
void (C::*i)(P1,P2,P3) )
195 template <
class C,
class P1,
class P2,
class P3,
class P4>
f make( C *o,
void (C::*i)(P1,P2,P3,P4) )
void invoke(P1 a1, P2 a2, P3 a3, P4 a4)
f04(C *o, void(C::*i)(P1, P2, P3, P4))
void invoke(P1 a1, P2 a2)
args04(T1 v1, T2 v2, T3 v3, T4 v4)
friend f make(C *o, void(C::*i)())
std::string state() const
f02(C *o, void(C::*i)(P1, P2))
f01(C *o, void(C::*i)(P1))
args03(T1 v1, T2 v2, T3 v3)
void(C::* impl)(P1, P2, P3)
void operator=(const f &)
void invoke(P1 a1, P2 a2, P3 a3)
f03(C *o, void(C::*i)(P1, P2, P3))
void(C::* impl)(P1, P2, P3, P4)
f make(C *o, void(C::*i)())
virtual void invoke(args *a)=0