#include <mitkMessage.h>
Public Types | |
| typedef Message4 | Self |
| typedef MessageAbstractDelegate4< T, U, V, W, A > | AbstractDelegate |
| typedef std::vector < AbstractDelegate * > | ListenerList |
Public Member Functions | |
| ~Message4 () | |
| void | AddListener (const AbstractDelegate &delegate) const |
| void | operator+= (const AbstractDelegate &delegate) const |
| void | RemoveListener (const AbstractDelegate &delegate) const |
| void | operator-= (const AbstractDelegate &delegate) const |
| void | Send (T t, U u, V v, W w) |
| void | operator() (T t, U u, V v, W w) |
| const ListenerList & | GetListeners () const |
| bool | HasListeners () const |
| bool | IsEmpty () const |
Protected Attributes | |
| ListenerList | m_Listeners |
| itk::SimpleFastMutexLock | m_Mutex |
Definition at line 968 of file mitkMessage.h.
| typedef MessageAbstractDelegate4<T,U,V,W,A> mitk::Message4< T, U, V, W, A >::AbstractDelegate |
Definition at line 973 of file mitkMessage.h.
| typedef std::vector<AbstractDelegate* > mitk::Message4< T, U, V, W, A >::ListenerList |
Definition at line 974 of file mitkMessage.h.
| typedef Message4 mitk::Message4< T, U, V, W, A >::Self |
Definition at line 972 of file mitkMessage.h.
| mitk::Message4< T, U, V, W, A >::~Message4 | ( | ) | [inline] |
Definition at line 976 of file mitkMessage.h.
References mitk::Message4< T, U, V, W, A >::m_Listeners.
{
for (typename ListenerList::iterator iter = m_Listeners.begin();
iter != m_Listeners.end(); ++iter )
{
delete *iter;
}
}
| void mitk::Message4< T, U, V, W, A >::AddListener | ( | const AbstractDelegate & | delegate ) | const [inline] |
Definition at line 984 of file mitkMessage.h.
References mitk::MessageAbstractDelegate4< T, U, V, W, A >::Clone(), mitk::Message4< T, U, V, W, A >::m_Listeners, and mitk::Message4< T, U, V, W, A >::m_Mutex.
Referenced by mitk::Message4< T, U, V, W, A >::operator+=().
{
AbstractDelegate* msgCmd = delegate.Clone();
m_Mutex.Lock();
for (typename ListenerList::iterator iter = m_Listeners.begin();
iter != m_Listeners.end();
++iter )
{
if ((*iter)->operator==(msgCmd)) {
delete msgCmd;
m_Mutex.Unlock();
return;
}
}
m_Listeners.push_back(msgCmd);
m_Mutex.Unlock();
}
| const ListenerList& mitk::Message4< T, U, V, W, A >::GetListeners | ( | ) | const [inline] |
Definition at line 1055 of file mitkMessage.h.
References mitk::Message4< T, U, V, W, A >::m_Listeners.
{
return this->m_Listeners;
}
| bool mitk::Message4< T, U, V, W, A >::HasListeners | ( | ) | const [inline] |
Definition at line 1060 of file mitkMessage.h.
References mitk::Message4< T, U, V, W, A >::m_Listeners.
{
return !m_Listeners.empty();
}
| bool mitk::Message4< T, U, V, W, A >::IsEmpty | ( | ) | const [inline] |
Definition at line 1065 of file mitkMessage.h.
References mitk::Message4< T, U, V, W, A >::m_Listeners.
{
return m_Listeners.empty();
}
| void mitk::Message4< T, U, V, W, A >::operator() | ( | T | t, |
| U | u, | ||
| V | v, | ||
| W | w | ||
| ) | [inline] |
Definition at line 1050 of file mitkMessage.h.
References mitk::Message4< T, U, V, W, A >::Send().
| void mitk::Message4< T, U, V, W, A >::operator+= | ( | const AbstractDelegate & | delegate ) | const [inline] |
Definition at line 1003 of file mitkMessage.h.
References mitk::Message4< T, U, V, W, A >::AddListener().
{
this->AddListener(delegate);
}
| void mitk::Message4< T, U, V, W, A >::operator-= | ( | const AbstractDelegate & | delegate ) | const [inline] |
Definition at line 1026 of file mitkMessage.h.
References mitk::Message4< T, U, V, W, A >::RemoveListener().
{
this->RemoveListener(delegate);
}
| void mitk::Message4< T, U, V, W, A >::RemoveListener | ( | const AbstractDelegate & | delegate ) | const [inline] |
Definition at line 1008 of file mitkMessage.h.
References mitk::Message4< T, U, V, W, A >::m_Listeners, and mitk::Message4< T, U, V, W, A >::m_Mutex.
Referenced by mitk::Message4< T, U, V, W, A >::operator-=().
{
m_Mutex.Lock();
for (typename ListenerList::iterator iter = m_Listeners.begin();
iter != m_Listeners.end();
++iter )
{
if ((*iter)->operator==(&delegate))
{
delete *iter;
m_Listeners.erase( iter );
m_Mutex.Unlock();
return;
}
}
m_Mutex.Unlock();
}
| void mitk::Message4< T, U, V, W, A >::Send | ( | T | t, |
| U | u, | ||
| V | v, | ||
| W | w | ||
| ) | [inline] |
Definition at line 1031 of file mitkMessage.h.
References mitk::Message4< T, U, V, W, A >::m_Listeners, and mitk::Message4< T, U, V, W, A >::m_Mutex.
Referenced by mitk::Message4< T, U, V, W, A >::operator()().
{
ListenerList listeners;
{
m_Mutex.Lock();
listeners.assign(m_Listeners.begin(), m_Listeners.end());
m_Mutex.Unlock();
}
for ( typename ListenerList::iterator iter = listeners.begin();
iter != listeners.end();
++iter )
{
// notify each listener
(*iter)->Execute(t,u,v,w);
}
}
ListenerList mitk::Message4< T, U, V, W, A >::m_Listeners [mutable, protected] |
Definition at line 1072 of file mitkMessage.h.
Referenced by mitk::Message4< T, U, V, W, A >::AddListener(), mitk::Message4< T, U, V, W, A >::GetListeners(), mitk::Message4< T, U, V, W, A >::HasListeners(), mitk::Message4< T, U, V, W, A >::IsEmpty(), mitk::Message4< T, U, V, W, A >::RemoveListener(), mitk::Message4< T, U, V, W, A >::Send(), and mitk::Message4< T, U, V, W, A >::~Message4().
itk::SimpleFastMutexLock mitk::Message4< T, U, V, W, A >::m_Mutex [mutable, protected] |
Definition at line 1073 of file mitkMessage.h.
Referenced by mitk::Message4< T, U, V, W, A >::AddListener(), mitk::Message4< T, U, V, W, A >::RemoveListener(), and mitk::Message4< T, U, V, W, A >::Send().
1.7.2