Public Member Functions | Protected Attributes

ItkDeleteEventListener Struct Reference

a class for checking if the datastorage is really thread safe More...

Collaboration diagram for ItkDeleteEventListener:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ItkDeleteEventListener (mitk::DataStorage *ds)
void SetNode (mitk::DataNode *_Node)
void OnObjectDelete (const itk::Object *caller, const itk::EventObject &)

Protected Attributes

mitk::DataNodem_Node
mitk::DataStorage::Pointer m_DataStorage
unsigned int m_DeleteObserverTag

Detailed Description

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.


Constructor & Destructor Documentation

ItkDeleteEventListener::ItkDeleteEventListener ( mitk::DataStorage ds ) [inline]

Definition at line 94 of file mitkDataStorageTest.cpp.


Member Function Documentation

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);
  }

Member Data Documentation

Definition at line 124 of file mitkDataStorageTest.cpp.

Referenced by OnObjectDelete().

Definition at line 125 of file mitkDataStorageTest.cpp.

Referenced by SetNode().

Definition at line 123 of file mitkDataStorageTest.cpp.

Referenced by OnObjectDelete(), and SetNode().


The documentation for this struct was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines