a class for checking if the datastorage is really thread safe More...
Public Member Functions | |
ItkDeleteEventListener (mitk::DataStorage *ds) | |
void | SetNode (mitk::DataNode *_Node) |
void | OnObjectDelete (const itk::Object *caller, const itk::EventObject &) |
Protected Attributes | |
mitk::DataNode * | m_Node |
mitk::DataStorage::Pointer | m_DataStorage |
unsigned int | m_DeleteObserverTag |
a class for checking if the datastorage is really thread safe
Therefore it listens to a node contained in the datastorage. when this node gets removed and deleted, this class gets informed by calling OnObjectDelete(). in OnObjectDelete() an empty node gets added. this must not cause a deadlock
Definition at line 92 of file mitkDataStorageTest.cpp.
ItkDeleteEventListener::ItkDeleteEventListener | ( | mitk::DataStorage * | ds ) | [inline] |
Definition at line 94 of file mitkDataStorageTest.cpp.
: m_Node(0), m_DataStorage(ds), m_DeleteObserverTag(0) { }
void ItkDeleteEventListener::OnObjectDelete | ( | const itk::Object * | caller, |
const itk::EventObject & | |||
) | [inline] |
Definition at line 113 of file mitkDataStorageTest.cpp.
References m_DataStorage, m_Node, and mitk::DataNode::New().
Referenced by SetNode().
{ mitk::DataNode::Pointer node = mitk::DataNode::New(); m_DataStorage->Add( node ); // SHOULD NOT CAUSE A DEADLOCK! m_DataStorage->Remove( node ); // tidy up: remove the empty node again m_Node = 0; }
void ItkDeleteEventListener::SetNode | ( | mitk::DataNode * | _Node ) | [inline] |
Definition at line 100 of file mitkDataStorageTest.cpp.
References m_DeleteObserverTag, m_Node, and OnObjectDelete().
Referenced by TestDataStorage().
{ if(m_Node) return; m_Node = _Node; itk::MemberCommand<ItkDeleteEventListener>::Pointer onObjectDelete = itk::MemberCommand<ItkDeleteEventListener>::New(); onObjectDelete->SetCallbackFunction(this, &ItkDeleteEventListener::OnObjectDelete); m_DeleteObserverTag = m_Node->AddObserver(itk::DeleteEvent(), onObjectDelete); }
Definition at line 124 of file mitkDataStorageTest.cpp.
Referenced by OnObjectDelete().
unsigned int ItkDeleteEventListener::m_DeleteObserverTag [protected] |
Definition at line 125 of file mitkDataStorageTest.cpp.
Referenced by SetNode().
mitk::DataNode* ItkDeleteEventListener::m_Node [protected] |
Definition at line 123 of file mitkDataStorageTest.cpp.
Referenced by OnObjectDelete(), and SetNode().