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().
1.7.2