| 620 | typedef typename Super::ListenerList ListenerList; |
| 621 | |
| 622 | void Send(T t, U u, V v) const |
| 623 | { |
| 624 | ListenerList listeners; |
| 625 | |
| 626 | { |
| 627 | this->m_Mutex.lock(); |
| 628 | listeners.assign(this->m_Listeners.begin(), this->m_Listeners.end()); |
| 629 | this->m_Mutex.unlock(); |
| 630 | } |
| 631 | |
| 632 | for (typename ListenerList::iterator iter = listeners.begin(); iter != listeners.end(); ++iter) |
| 633 | { |
| 634 | // notify each listener |
| 635 | (*iter)->Execute(t, u, v); |
| 636 | } |
| 637 | } |
| 638 | |
| 639 | void operator()(T t, U u, V v) const { this->Send(t, u, v); } |
| 640 | }; |