Implements a weak reference to an object. More...
#include <mitkWeakPointer.h>
Public Types | |
typedef TObjectType | ObjectType |
typedef Message1< const itk::Object * > | itkObjectEvent |
Public Member Functions | |
WeakPointer () | |
WeakPointer (const WeakPointer< ObjectType > &p) | |
WeakPointer (ObjectType *p) | |
~WeakPointer () | |
ObjectType * | operator-> () const |
operator ObjectType * () const | |
template<typename R > | |
bool | operator== (R r) const |
template<typename R > | |
bool | operator!= (R r) const |
ObjectType * | GetPointer () const |
bool | operator< (const WeakPointer &r) const |
bool | operator> (const WeakPointer &r) const |
bool | operator<= (const WeakPointer &r) const |
bool | operator>= (const WeakPointer &r) const |
bool | IsNotNull () const |
bool | IsNull () const |
WeakPointer & | operator= (const WeakPointer &r) |
WeakPointer & | operator= (ObjectType *r) |
ObjectType * | Print (std::ostream &os) const |
void | OnObjectDelete (const itk::Object *caller, const itk::EventObject &) |
Gets called when the object is deleted or modified. | |
void | OnObjectModified (const itk::Object *caller, const itk::EventObject &) |
Public Attributes | |
itkObjectEvent | ObjectDelete |
AddEvent is emitted when the object pointed to gets deleted. | |
itkObjectEvent | ObjectModified |
AddEvent is emitted when the object pointed to gets modified. |
Implements a weak reference to an object.
Extends the standard itk WeakPointer by listening to delete events of itk::Objects. When an itk::Object is deleted the WeakPointer sets its internal Pointer to 0. This enables checking against 0 and avoids crashes by accessing changed memory. Furthermore it dispatches Modified events with the mitkMessageDelegate system which is much easier to use.
Definition at line 40 of file mitkWeakPointer.h.
typedef Message1<const itk::Object*> mitk::WeakPointer< TObjectType >::itkObjectEvent |
Definition at line 46 of file mitkWeakPointer.h.
typedef TObjectType mitk::WeakPointer< TObjectType >::ObjectType |
Extract infoirmation from template parameter.
Definition at line 44 of file mitkWeakPointer.h.
mitk::WeakPointer< TObjectType >::WeakPointer | ( | ) | [inline] |
Constructor.
Definition at line 56 of file mitkWeakPointer.h.
: m_DeleteObserverTag(-1) , m_ModifiedObserverTag(-1) , m_Pointer(0) { }
mitk::WeakPointer< TObjectType >::WeakPointer | ( | const WeakPointer< ObjectType > & | p ) | [inline] |
Copy constructor.
Definition at line 64 of file mitkWeakPointer.h.
: m_DeleteObserverTag(-1) , m_ModifiedObserverTag(-1) , m_Pointer(p.m_Pointer) { this->AddDeleteAndModifiedObserver(); }
mitk::WeakPointer< TObjectType >::WeakPointer | ( | ObjectType * | p ) | [inline] |
Constructor to pointer p.
Definition at line 73 of file mitkWeakPointer.h.
: m_DeleteObserverTag(-1), m_ModifiedObserverTag(-1), m_Pointer(p) { this->AddDeleteAndModifiedObserver(); }
mitk::WeakPointer< TObjectType >::~WeakPointer | ( | ) | [inline] |
Destructor.
Definition at line 82 of file mitkWeakPointer.h.
{ this->RemoveDeleteAndModifiedObserver(); m_Pointer = 0; }
ObjectType* mitk::WeakPointer< TObjectType >::GetPointer | ( | ) | const [inline] |
Access function to pointer.
Definition at line 110 of file mitkWeakPointer.h.
Referenced by QmitkImageCropper::CropImage(), QmitkDataStorageTreeModel::GetDataStorage(), QmitkDataStorageTableModel::GetDataStorage(), QmitkDataStorageComboBox::GetDataStorage(), QmitkPropertiesTableModel::GetPropertyList(), mitk::WeakPointer< mitk::PointSetInteractor >::operator=(), mitk::SimpleHistogramCache::operator[](), QmitkDataStorageTableModel::SetDataStorage(), QmitkDataStorageComboBox::SetDataStorage(), QmitkPropertiesTableModel::SetPropertyList(), and QmitkImageCropper::SurroundingCheck().
{ return m_Pointer; }
bool mitk::WeakPointer< TObjectType >::IsNotNull | ( | ) | const [inline] |
Test if the pointer has been initialized
Definition at line 130 of file mitkWeakPointer.h.
Referenced by QmitkMeasurement::AddFigureToDataStorage(), QmitkImageCropper::CreateNewBoundingObject(), QmitkVolumetryView::CreateOverlayChild(), QmitkSlicesInterpolator::GetDataStorage(), mitk::SegmentationSink::InsertBelowGroupNode(), mitk::SegmentationSink::LookForPointerTargetBelowGroupNode(), QmitkMeasurement::NodeAddedInDataStorage(), QmitkVolumetryView::OnCalculateVolume(), QmitkColourImageProcessingView::OnConvertImageMaskColorToRGBAImage(), QmitkColourImageProcessingView::OnConvertToRGBAImage(), QmitkVolumetryView::OnImageSelected(), QmitkSlicesInterpolator::OnInterpolationActivated(), QmitkSimpleMeasurement::OnSelectionChanged(), QmitkVolumetryView::OnTimeSeriesButtonClicked(), QmitkPropertiesTableModel::Reset(), QmitkDataStorageTableModel::Reset(), QmitkDataStorageComboBox::Reset(), QmitkDataStorageTreeModel::SetDataStorage(), QmitkDataStorageComboBox::SetDataStorage(), QmitkPointListViewWidget::SetPointSet(), QmitkPropertiesTableModel::SetPropertyList(), QmitkImageCropper::SurroundingCheck(), QmitkVolumetryView::UpdateSlider(), and QmitkDataStorageComboBox::~QmitkDataStorageComboBox().
{ return m_Pointer != 0; }
bool mitk::WeakPointer< TObjectType >::IsNull | ( | ) | const [inline] |
Definition at line 132 of file mitkWeakPointer.h.
Referenced by QmitkDataStorageTreeModel::AddNode(), QmitkImageCropper::CropImage(), QmitkPointListViewWidget::keyPressEvent(), mitkWeakPointerTest(), QmitkColourImageProcessingView::OnCombineRGBA(), QmitkColourImageProcessingView::OnConvertImageMaskColorToRGBAImage(), QmitkColourImageProcessingView::OnConvertToRGBAImage(), QmitkVolumeVisualizationView::OnEnableLOD(), QmitkVolumeVisualizationView::OnEnableRendering(), QmitkVolumeVisualizationView::OnRenderMode(), QmitkMeasurement::PlanarFigureInitialized(), and QmitkPointListViewWidget::Update().
{ return m_Pointer == 0; }
void mitk::WeakPointer< TObjectType >::OnObjectDelete | ( | const itk::Object * | caller, |
const itk::EventObject & | |||
) | [inline] |
Gets called when the object is deleted or modified.
Definition at line 159 of file mitkWeakPointer.h.
{ // do not unsubscribe from this object. this would invalidate the iterator of the // event listener vector (in itk::Object) and would lead to a crash // instead: do nothing->object is going to be dead soon... //this->RemoveDeleteAndModifiedObserver(); m_Pointer = 0; m_DeleteObserverTag = -1; m_ModifiedObserverTag = -1; ObjectDelete.Send(caller); }
void mitk::WeakPointer< TObjectType >::OnObjectModified | ( | const itk::Object * | caller, |
const itk::EventObject & | |||
) | [inline] |
Definition at line 172 of file mitkWeakPointer.h.
{ ObjectModified.Send(caller); }
mitk::WeakPointer< TObjectType >::operator ObjectType * | ( | ) | const [inline] |
bool mitk::WeakPointer< TObjectType >::operator!= | ( | R | r ) | const [inline] |
Definition at line 104 of file mitkWeakPointer.h.
{ return (m_Pointer != (ObjectType*)r); }
ObjectType* mitk::WeakPointer< TObjectType >::operator-> | ( | ) | const [inline] |
bool mitk::WeakPointer< TObjectType >::operator< | ( | const WeakPointer< TObjectType > & | r ) | const [inline] |
Comparison of pointers. Less than comparison.
Definition at line 114 of file mitkWeakPointer.h.
{ return (void*)m_Pointer < (void*) r.m_Pointer; }
bool mitk::WeakPointer< TObjectType >::operator<= | ( | const WeakPointer< TObjectType > & | r ) | const [inline] |
Comparison of pointers. Less than or equal to comparison.
Definition at line 122 of file mitkWeakPointer.h.
{ return (void*)m_Pointer <= (void*) r.m_Pointer; }
WeakPointer& mitk::WeakPointer< TObjectType >::operator= | ( | ObjectType * | r ) | [inline] |
Overload operator assignment.
Definition at line 140 of file mitkWeakPointer.h.
{ this->RemoveDeleteAndModifiedObserver(); m_Pointer = r; this->AddDeleteAndModifiedObserver(); return *this; }
WeakPointer& mitk::WeakPointer< TObjectType >::operator= | ( | const WeakPointer< TObjectType > & | r ) | [inline] |
Overload operator assignment.
Definition at line 136 of file mitkWeakPointer.h.
Referenced by mitk::WeakPointer< mitk::PointSetInteractor >::operator=().
{ return this->operator = (r.GetPointer()); }
bool mitk::WeakPointer< TObjectType >::operator== | ( | R | r ) | const [inline] |
Template comparison operators.
Definition at line 99 of file mitkWeakPointer.h.
{ return (m_Pointer == (ObjectType*)r); }
bool mitk::WeakPointer< TObjectType >::operator> | ( | const WeakPointer< TObjectType > & | r ) | const [inline] |
Comparison of pointers. Greater than comparison.
Definition at line 118 of file mitkWeakPointer.h.
{ return (void*)m_Pointer > (void*) r.m_Pointer; }
bool mitk::WeakPointer< TObjectType >::operator>= | ( | const WeakPointer< TObjectType > & | r ) | const [inline] |
Comparison of pointers. Greater than or equal to comparison.
Definition at line 126 of file mitkWeakPointer.h.
{ return (void*)m_Pointer >= (void*) r.m_Pointer; }
ObjectType* mitk::WeakPointer< TObjectType >::Print | ( | std::ostream & | os ) | const [inline] |
Function to print object pointed to.
Definition at line 149 of file mitkWeakPointer.h.
{ // This prints the object pointed to by the pointer (*m_Pointer).Print(os); return m_Pointer; }
itkObjectEvent mitk::WeakPointer< TObjectType >::ObjectDelete |
AddEvent is emitted when the object pointed to gets deleted.
Definition at line 49 of file mitkWeakPointer.h.
Referenced by mitk::WeakPointer< mitk::PointSetInteractor >::OnObjectDelete(), QmitkDataStorageTreeModel::SetDataStorage(), QmitkPointListViewWidget::SetPointSet(), and QmitkPropertiesTableModel::SetPropertyList().
itkObjectEvent mitk::WeakPointer< TObjectType >::ObjectModified |
AddEvent is emitted when the object pointed to gets modified.
Definition at line 53 of file mitkWeakPointer.h.
Referenced by mitk::WeakPointer< mitk::PointSetInteractor >::OnObjectModified(), and QmitkPointListViewWidget::SetPointSet().