ITK  5.0.0
Insight Segmentation and Registration Toolkit
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | List of all members
itk::EventObject Class Referenceabstract

#include <itkEventObject.h>

Detailed Description

Abstraction of the Events used to communicating among filters and with GUIs.

EventObject provides a standard coding for sending and receiving messages indicating things like the initiation of processes, end of processes, modification of filters.

EventObjects form a hierarchy similar to the itk::ExceptionObject allowing to factorize common events in a tree-like structure. Higher detail can be assigned by users by subclassing existing itk::EventObjects.

EventObjects are used by itk::Command and itk::Object for implementing the Observer/Subject design pattern. Observers register their interest in particular kinds of events produced by a specific itk::Object. This mechanism decouples classes among them.

As opposed to itk::Exception, itk::EventObject does not represent error states, but simply flow of information allowing to trigger actions as a consequence of changes occurring in state on some itk::Objects.

itk::EventObject carries information in its own type, it relies on the appropriate use of the RTTI (Run Time Type Information).

A set of standard EventObjects is defined near the end of itkEventObject.h.

See Also
itk::Command
itk::ExceptionObject
Examples:
Examples/RegistrationITKv3/BSplineWarping1.cxx, Examples/RegistrationITKv3/BSplineWarping2.cxx, Examples/RegistrationITKv3/DeformableRegistration10.cxx, Examples/RegistrationITKv3/DeformableRegistration12.cxx, Examples/RegistrationITKv3/DeformableRegistration13.cxx, Examples/RegistrationITKv3/DeformableRegistration14.cxx, Examples/RegistrationITKv3/DeformableRegistration15.cxx, Examples/RegistrationITKv3/DeformableRegistration16.cxx, Examples/RegistrationITKv3/DeformableRegistration17.cxx, Examples/RegistrationITKv3/DeformableRegistration2.cxx, Examples/RegistrationITKv3/DeformableRegistration3.cxx, Examples/RegistrationITKv3/DeformableRegistration5.cxx, Examples/RegistrationITKv3/DeformableRegistration7.cxx, Examples/RegistrationITKv3/DeformableRegistration8.cxx, Examples/RegistrationITKv3/DeformableRegistration9.cxx, Examples/RegistrationITKv3/ImageRegistration1.cxx, Examples/RegistrationITKv3/ImageRegistration10.cxx, Examples/RegistrationITKv3/ImageRegistration11.cxx, Examples/RegistrationITKv3/ImageRegistration12.cxx, Examples/RegistrationITKv3/ImageRegistration13.cxx, Examples/RegistrationITKv3/ImageRegistration14.cxx, Examples/RegistrationITKv3/ImageRegistration15.cxx, Examples/RegistrationITKv3/ImageRegistration16.cxx, Examples/RegistrationITKv3/ImageRegistration17.cxx, Examples/RegistrationITKv3/ImageRegistration18.cxx, Examples/RegistrationITKv3/ImageRegistration19.cxx, Examples/RegistrationITKv3/ImageRegistration2.cxx, Examples/RegistrationITKv3/ImageRegistration20.cxx, Examples/RegistrationITKv3/ImageRegistration3.cxx, Examples/RegistrationITKv3/ImageRegistration4.cxx, Examples/RegistrationITKv3/ImageRegistration5.cxx, Examples/RegistrationITKv3/ImageRegistration6.cxx, Examples/RegistrationITKv3/ImageRegistration7.cxx, Examples/RegistrationITKv3/ImageRegistration8.cxx, Examples/RegistrationITKv3/ImageRegistration9.cxx, Examples/RegistrationITKv3/ImageRegistrationHistogramPlotter.cxx, Examples/RegistrationITKv3/IterativeClosestPoint1.cxx, Examples/RegistrationITKv3/ModelToImageRegistration1.cxx, Examples/RegistrationITKv3/ModelToImageRegistration2.cxx, Examples/RegistrationITKv3/MultiResImageRegistration1.cxx, Examples/RegistrationITKv3/MultiResImageRegistration2.cxx, Examples/RegistrationITKv3/MultiResImageRegistration3.cxx, Examples/RegistrationITKv4/BSplineWarping1.cxx, Examples/RegistrationITKv4/BSplineWarping2.cxx, Examples/RegistrationITKv4/DeformableRegistration10.cxx, Examples/RegistrationITKv4/DeformableRegistration12.cxx, Examples/RegistrationITKv4/DeformableRegistration13.cxx, Examples/RegistrationITKv4/DeformableRegistration14.cxx, Examples/RegistrationITKv4/DeformableRegistration15.cxx, Examples/RegistrationITKv4/DeformableRegistration16.cxx, Examples/RegistrationITKv4/DeformableRegistration17.cxx, Examples/RegistrationITKv4/DeformableRegistration2.cxx, Examples/RegistrationITKv4/DeformableRegistration3.cxx, Examples/RegistrationITKv4/DeformableRegistration5.cxx, Examples/RegistrationITKv4/DeformableRegistration6.cxx, Examples/RegistrationITKv4/DeformableRegistration7.cxx, Examples/RegistrationITKv4/DeformableRegistration8.cxx, Examples/RegistrationITKv4/DeformableRegistration9.cxx, Examples/RegistrationITKv4/ImageRegistration1.cxx, Examples/RegistrationITKv4/ImageRegistration10.cxx, Examples/RegistrationITKv4/ImageRegistration11.cxx, Examples/RegistrationITKv4/ImageRegistration12.cxx, Examples/RegistrationITKv4/ImageRegistration13.cxx, Examples/RegistrationITKv4/ImageRegistration14.cxx, Examples/RegistrationITKv4/ImageRegistration15.cxx, Examples/RegistrationITKv4/ImageRegistration16.cxx, Examples/RegistrationITKv4/ImageRegistration17.cxx, Examples/RegistrationITKv4/ImageRegistration18.cxx, Examples/RegistrationITKv4/ImageRegistration19.cxx, Examples/RegistrationITKv4/ImageRegistration2.cxx, Examples/RegistrationITKv4/ImageRegistration20.cxx, Examples/RegistrationITKv4/ImageRegistration3.cxx, Examples/RegistrationITKv4/ImageRegistration4.cxx, Examples/RegistrationITKv4/ImageRegistration5.cxx, Examples/RegistrationITKv4/ImageRegistration6.cxx, Examples/RegistrationITKv4/ImageRegistration7.cxx, Examples/RegistrationITKv4/ImageRegistration8.cxx, Examples/RegistrationITKv4/ImageRegistration9.cxx, Examples/RegistrationITKv4/ImageRegistrationHistogramPlotter.cxx, Examples/RegistrationITKv4/IterativeClosestPoint1.cxx, Examples/RegistrationITKv4/IterativeClosestPoint2.cxx, Examples/RegistrationITKv4/ModelToImageRegistration1.cxx, Examples/RegistrationITKv4/ModelToImageRegistration2.cxx, Examples/RegistrationITKv4/MultiResImageRegistration1.cxx, Examples/RegistrationITKv4/MultiResImageRegistration2.cxx, Examples/RegistrationITKv4/MultiResImageRegistration3.cxx, Examples/RegistrationITKv4/MultiStageImageRegistration1.cxx, Examples/RegistrationITKv4/MultiStageImageRegistration2.cxx, Examples/Segmentation/GeodesicActiveContourShapePriorLevelSetImageFilter.cxx, SphinxExamples/src/Core/Common/ObserveAnEvent/Code.cxx, SphinxExamples/src/Registration/Common/PerformMultiModalityRegistrationWithMutualInformation/Code.cxx, WikiExamples/Registration/ExhaustiveOptimizer.cxx, and WikiExamples/Registration/WatchRegistration.cxx.

Definition at line 57 of file itkEventObject.h.

Public Member Functions

virtual bool CheckEvent (const EventObject *) const =0
 
 EventObject ()=default
 
 EventObject (const EventObject &)=default
 
virtual const char * GetEventName () const =0
 
virtual EventObjectMakeObject () const =0
 
virtual void Print (std::ostream &os) const
 
virtual ~EventObject ()=default
 

Protected Member Functions

virtual void PrintHeader (std::ostream &os, Indent indent) const
 
virtual void PrintSelf (std::ostream &os, Indent indent) const
 
virtual void PrintTrailer (std::ostream &os, Indent indent) const
 

Private Types

using EventFactoryFunction ) = EventObject *(
 

Private Member Functions

void operator= (const EventObject &)=delete
 

Member Typedef Documentation

using itk::EventObject::EventFactoryFunction = EventObject *(
private

Definition at line 96 of file itkEventObject.h.

Constructor & Destructor Documentation

itk::EventObject::EventObject ( )
default

Constructor and copy constructor. Note that these functions will be called when children are instantiated.

itk::EventObject::EventObject ( const EventObject )
default
virtual itk::EventObject::~EventObject ( )
virtualdefault

Virtual destructor needed

Member Function Documentation

virtual bool itk::EventObject::CheckEvent ( const EventObject ) const
pure virtual

Check if given event matches or derives from this event.

virtual const char* itk::EventObject::GetEventName ( ) const
pure virtual

Return the StringName associated with the event.

virtual EventObject* itk::EventObject::MakeObject ( ) const
pure virtual

Create an Event of this type This method work as a Factory for creating events of each particular type.

void itk::EventObject::operator= ( const EventObject )
privatedelete
virtual void itk::EventObject::Print ( std::ostream &  os) const
virtual

Print Event information. This method can be overridden by specific Event subtypes. The default is to print out the type of the event.

virtual void itk::EventObject::PrintHeader ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual
virtual void itk::EventObject::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

virtual void itk::EventObject::PrintTrailer ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual

The documentation for this class was generated from the following file: