22 #ifndef __SIGNALV3IMPLVC6__
23 #define __SIGNALV3IMPLVC6__
26 #error "This is an implementation header. You are not allowed to include it directly!"
35 template <
typename ParmType1,
typename ParmType2,
typename ParmType3 >
36 class Signalv3 :
public Signal
40 typedef typename CBL::Functor3<ParmType1,ParmType2,ParmType3>
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 );
139 void Emit( ParmType1 parm1, ParmType2 parm2, ParmType3 parm3 )
150 (*(*i))( parm1, parm2, parm3 );
174 #endif // Signalv3ImplVC6.hxx