| 654 | typedef typename Super::ListenerList ListenerList; |
| 655 | |
| 656 | void Send(T t, U u, V v, W w) const |
| 657 | { |
| 658 | ListenerList listeners; |
| 659 | |
| 660 | { |
| 661 | this->m_Mutex.lock(); |
| 662 | listeners.assign(this->m_Listeners.begin(), this->m_Listeners.end()); |
| 663 | this->m_Mutex.unlock(); |
| 664 | } |
| 665 | |
| 666 | for (typename ListenerList::iterator iter = listeners.begin(); iter != listeners.end(); ++iter) |
| 667 | { |
| 668 | // notify each listener |
| 669 | (*iter)->Execute(t, u, v, w); |
| 670 | } |
| 671 | } |
| 672 | |
| 673 | void operator()(T t, U u, V v, W w) const { this->Send(t, u, v, w); } |
| 674 | }; |