void disconnect( _Delegate delegate ) { for (DelegateIterator it = delegateList.begin(); it != delegateList.end(); ++it) if( *it == delegate ) { delegateList.erase( it ); return; } }
void disconnect( Y * obj, void (X::*func)() const ) { _Delegate& eq = makeDelegate( obj, func ); for (DelegateList::iterator it = delegateList.begin(); it != delegateList.end(); ++it) if( *it == eq ) { delegateList.erase( it ); return; } }
void disconnect( Y * obj, void (X::*func)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 ) const ) { _Delegate& eq = makeDelegate( obj, func ); for (DelegateIterator it = delegateList.begin(); it != delegateList.end(); ++it) if( *it == eq ) { delegateList.erase( it ); return; } }
void emit() const { for (DelegateIterator it = delegateList.begin(); it != delegateList.end(); ++it) (*it)(); }
void emit( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 ) const { for (DelegateIterator it = delegateList.begin(); it != delegateList.end(); ++it) (*it)( p1, p2, p3, p4, p5, p6, p7, p8 ); }
void emit( Param1 p1, Param2 p2, Param3 p3, Param4 p4 ) const { for (DelegateIterator it = delegateList.begin(); it != delegateList.end(); ++it) ( *it )( p1, p2, p3, p4 ); }