22 #ifndef __SIGNALV4IMPLVC6__
23 #define __SIGNALV4IMPLVC6__
26 #error "This is an implementation header. You are not allowed to include it directly!"
35 template <
typename ParmType1,
typename ParmType2,
typename ParmType3,
typename ParmType4 >
36 class Signalv4 :
public Signal
40 typedef typename CBL::Functor4<ParmType1,ParmType2,ParmType3,ParmType4>
tCallbackType;
68 mCallbacks.push_back(
tCallback( pConnection, slot, cb ) );
73 return mCallbacks.empty();
85 mCalls.push_back( &(i->mCallback) );
99 if ( i->mConnection ==
id )
101 mCallbacks.erase( i );
112 while ( !mCallbacks.empty() )
114 elem = mCallbacks.begin();
116 elem->mSlot->Unbind( elem->mConnection );
138 void Emit( ParmType1 parm1, ParmType2 parm2, ParmType3 parm3, ParmType4 parm4 )
149 (*(*i))( parm1, parm2, parm3, parm4 );
173 #endif // Signalv4ImplVC6.hxx