ITK  5.3.0
Insight Toolkit
Public Member Functions | List of all members
itk::SimpleFilterWatcher Class Reference

#include <itkSimpleFilterWatcher.h>

+ Inheritance diagram for itk::SimpleFilterWatcher:
+ Collaboration diagram for itk::SimpleFilterWatcher:

Public Member Functions

const char * GetNameOfClass ()
 
SimpleFilterWatcheroperator= (const SimpleFilterWatcher &)
 
 SimpleFilterWatcher ()
 
 SimpleFilterWatcher (const SimpleFilterWatcher &)
 
 SimpleFilterWatcher (itk::ProcessObject *o, const char *comment="")
 
virtual ~SimpleFilterWatcher ()
 
using CommandType = SimpleMemberCommand< SimpleFilterWatcher >
 
TimeProbe m_TimeProbe
 
int m_Steps { 0 }
 
int m_Iterations { 0 }
 
bool m_Quiet { false }
 
bool m_TestAbort { false }
 
std::string m_Comment
 
itk::ProcessObject::Pointer m_Process
 
std::mutex m_ProgressOutput
 
CommandType::Pointer m_StartFilterCommand
 
CommandType::Pointer m_EndFilterCommand
 
CommandType::Pointer m_ProgressFilterCommand
 
CommandType::Pointer m_IterationFilterCommand
 
CommandType::Pointer m_AbortFilterCommand
 
unsigned long m_StartTag { 0 }
 
unsigned long m_EndTag { 0 }
 
unsigned long m_ProgressTag { 0 }
 
unsigned long m_IterationTag { 0 }
 
unsigned long m_AbortTag { 0 }
 
void QuietOn ()
 
void QuietOff ()
 
void TestAbortOn ()
 
void TestAbortOff ()
 
ProcessObjectGetProcess ()
 
void SetSteps (int val)
 
int GetSteps () const
 
void SetIterations (int val)
 
int GetIterations () const
 
void SetQuiet (bool val)
 
bool GetQuiet () const
 
std::string GetComment ()
 
TimeProbeGetTimeProbe ()
 
virtual void ShowProgress ()
 
void CreateCommands ()
 
void RemoveObservers ()
 
void DeepCopy (const SimpleFilterWatcher &watch)
 
virtual void ShowAbort ()
 
virtual void ShowIteration ()
 
virtual void StartFilter ()
 
virtual void EndFilter ()
 

Detailed Description

Simple mechanism for monitoring the pipeline events of a filter and reporting these events to std::cout.

SimpleFilterWatcher provides a simple mechanism for monitoring the execution of filter. SimpleFilterWatcher is a stack-based object which takes a pointer to a ProcessObject at constructor time. SimpleFilterWatcher creates a series of commands that are registered as observers to the specified ProcessObject. The events monitored are:

 StartEvent
 EndEvent
 ProgressEvent
 IterationEvent
 AbortEvent

The callbacks routines registered for these events emit a simple message to std::cout.

Example of use:

using FilterType = itk::BinaryThresholdImageFilter<ImageType>; auto thresholdFilter = FilterType::New();

SimpleFilterWatcher watcher(thresholdFilter, "Threshold");

The second argument to the constructor to SimpleFilterWatcher is an optional string that is prepended to the event messages. This allows the user to associate the emitted messages to a particular filter/variable.

Todo:
Allow any stream object to be used for the output (not just std::cout)
ITK Sphinx Examples:
Examples
Examples/IO/VisibleHumanPasteWrite.cxx, Examples/IO/VisibleHumanStreamReadWrite.cxx, and SphinxExamples/src/Core/Common/WatchAFilter/Code.cxx.

Definition at line 68 of file itkSimpleFilterWatcher.h.

Member Typedef Documentation

◆ CommandType

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 306 of file itkSimpleFilterWatcher.h.

Constructor & Destructor Documentation

◆ SimpleFilterWatcher() [1/3]

itk::SimpleFilterWatcher::SimpleFilterWatcher ( itk::ProcessObject o,
const char *  comment = "" 
)

Constructor. Takes a ProcessObject to monitor and an optional comment string that is prepended to each event message.

◆ SimpleFilterWatcher() [2/3]

itk::SimpleFilterWatcher::SimpleFilterWatcher ( const SimpleFilterWatcher )

Copy constructor

◆ SimpleFilterWatcher() [3/3]

itk::SimpleFilterWatcher::SimpleFilterWatcher ( )

Default constructor. Only provided so that you can have std::vectors of SimpleFilterWatchers.

◆ ~SimpleFilterWatcher()

virtual itk::SimpleFilterWatcher::~SimpleFilterWatcher ( )
virtual

Destructor.

Member Function Documentation

◆ CreateCommands()

void itk::SimpleFilterWatcher::CreateCommands ( )
protected

Create commands for different event types.

◆ DeepCopy()

void itk::SimpleFilterWatcher::DeepCopy ( const SimpleFilterWatcher watch)
protected

The common code for copying this class.

◆ EndFilter()

virtual void itk::SimpleFilterWatcher::EndFilter ( )
inlineprotectedvirtual

Callback method to show the EndEvent

Reimplemented in itk::XMLFilterWatcher.

Definition at line 270 of file itkSimpleFilterWatcher.h.

◆ GetComment()

std::string itk::SimpleFilterWatcher::GetComment ( )
inline

Get the comment for the watcher.

Definition at line 177 of file itkSimpleFilterWatcher.h.

◆ GetIterations()

int itk::SimpleFilterWatcher::GetIterations ( ) const
inline

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 155 of file itkSimpleFilterWatcher.h.

◆ GetNameOfClass()

const char* itk::SimpleFilterWatcher::GetNameOfClass ( )
inline

Method to get the name of the class be monitored by this SimpleFilterWatcher

Definition at line 92 of file itkSimpleFilterWatcher.h.

◆ GetProcess()

ProcessObject* itk::SimpleFilterWatcher::GetProcess ( )
inline

Methods to access member data Get a pointer to the process object being watched.

Definition at line 130 of file itkSimpleFilterWatcher.h.

◆ GetQuiet()

bool itk::SimpleFilterWatcher::GetQuiet ( ) const
inline

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 169 of file itkSimpleFilterWatcher.h.

◆ GetSteps()

int itk::SimpleFilterWatcher::GetSteps ( ) const
inline

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 142 of file itkSimpleFilterWatcher.h.

◆ GetTimeProbe()

TimeProbe& itk::SimpleFilterWatcher::GetTimeProbe ( )
inline

Get a reference to the TimeProbe

Definition at line 184 of file itkSimpleFilterWatcher.h.

◆ operator=()

SimpleFilterWatcher& itk::SimpleFilterWatcher::operator= ( const SimpleFilterWatcher )

operator=

◆ QuietOff()

void itk::SimpleFilterWatcher::QuietOff ( )
inline

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 105 of file itkSimpleFilterWatcher.h.

◆ QuietOn()

void itk::SimpleFilterWatcher::QuietOn ( )
inline

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 100 of file itkSimpleFilterWatcher.h.

◆ RemoveObservers()

void itk::SimpleFilterWatcher::RemoveObservers ( )
protected

Remove observers we have on the process object.

◆ SetIterations()

void itk::SimpleFilterWatcher::SetIterations ( int  val)
inline

Set/Get the number of iterations completed.

Definition at line 150 of file itkSimpleFilterWatcher.h.

◆ SetQuiet()

void itk::SimpleFilterWatcher::SetQuiet ( bool  val)
inline

Set/Get the quiet mode boolean. If true, verbose progress is reported.

Definition at line 164 of file itkSimpleFilterWatcher.h.

◆ SetSteps()

void itk::SimpleFilterWatcher::SetSteps ( int  val)
inline

Set/Get the steps completed.

Definition at line 137 of file itkSimpleFilterWatcher.h.

◆ ShowAbort()

virtual void itk::SimpleFilterWatcher::ShowAbort ( )
inlineprotectedvirtual

Callback method to show the AbortEvent

Definition at line 231 of file itkSimpleFilterWatcher.h.

◆ ShowIteration()

virtual void itk::SimpleFilterWatcher::ShowIteration ( )
inlineprotectedvirtual

Callback method to show the IterationEvent

Definition at line 238 of file itkSimpleFilterWatcher.h.

◆ ShowProgress()

virtual void itk::SimpleFilterWatcher::ShowProgress ( )
inlineprotectedvirtual

Callback method to show the ProgressEvent

Reimplemented in itk::XMLFilterWatcher.

Definition at line 192 of file itkSimpleFilterWatcher.h.

◆ StartFilter()

virtual void itk::SimpleFilterWatcher::StartFilter ( )
inlineprotectedvirtual

Callback method to show the StartEvent

Reimplemented in itk::XMLFilterWatcher.

Definition at line 246 of file itkSimpleFilterWatcher.h.

◆ TestAbortOff()

void itk::SimpleFilterWatcher::TestAbortOff ( )
inline

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 120 of file itkSimpleFilterWatcher.h.

◆ TestAbortOn()

void itk::SimpleFilterWatcher::TestAbortOn ( )
inline

Methods to use to test the AbortEvent of the a filter. If TestAbort is on, the filter being watched will be aborted when the progress reaches 30%.

Definition at line 115 of file itkSimpleFilterWatcher.h.

Member Data Documentation

◆ m_AbortFilterCommand

CommandType::Pointer itk::SimpleFilterWatcher::m_AbortFilterCommand
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 311 of file itkSimpleFilterWatcher.h.

◆ m_AbortTag

unsigned long itk::SimpleFilterWatcher::m_AbortTag { 0 }
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 317 of file itkSimpleFilterWatcher.h.

◆ m_Comment

std::string itk::SimpleFilterWatcher::m_Comment
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 302 of file itkSimpleFilterWatcher.h.

◆ m_EndFilterCommand

CommandType::Pointer itk::SimpleFilterWatcher::m_EndFilterCommand
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 308 of file itkSimpleFilterWatcher.h.

◆ m_EndTag

unsigned long itk::SimpleFilterWatcher::m_EndTag { 0 }
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 314 of file itkSimpleFilterWatcher.h.

◆ m_IterationFilterCommand

CommandType::Pointer itk::SimpleFilterWatcher::m_IterationFilterCommand
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 310 of file itkSimpleFilterWatcher.h.

◆ m_Iterations

int itk::SimpleFilterWatcher::m_Iterations { 0 }
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 299 of file itkSimpleFilterWatcher.h.

◆ m_IterationTag

unsigned long itk::SimpleFilterWatcher::m_IterationTag { 0 }
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 316 of file itkSimpleFilterWatcher.h.

◆ m_Process

itk::ProcessObject::Pointer itk::SimpleFilterWatcher::m_Process
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 303 of file itkSimpleFilterWatcher.h.

◆ m_ProgressFilterCommand

CommandType::Pointer itk::SimpleFilterWatcher::m_ProgressFilterCommand
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 309 of file itkSimpleFilterWatcher.h.

◆ m_ProgressOutput

std::mutex itk::SimpleFilterWatcher::m_ProgressOutput
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 304 of file itkSimpleFilterWatcher.h.

◆ m_ProgressTag

unsigned long itk::SimpleFilterWatcher::m_ProgressTag { 0 }
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 315 of file itkSimpleFilterWatcher.h.

◆ m_Quiet

bool itk::SimpleFilterWatcher::m_Quiet { false }
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 300 of file itkSimpleFilterWatcher.h.

◆ m_StartFilterCommand

CommandType::Pointer itk::SimpleFilterWatcher::m_StartFilterCommand
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 307 of file itkSimpleFilterWatcher.h.

◆ m_StartTag

unsigned long itk::SimpleFilterWatcher::m_StartTag { 0 }
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 313 of file itkSimpleFilterWatcher.h.

◆ m_Steps

int itk::SimpleFilterWatcher::m_Steps { 0 }
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 298 of file itkSimpleFilterWatcher.h.

◆ m_TestAbort

bool itk::SimpleFilterWatcher::m_TestAbort { false }
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 301 of file itkSimpleFilterWatcher.h.

◆ m_TimeProbe

TimeProbe itk::SimpleFilterWatcher::m_TimeProbe
private

Methods to control the verbosity of the messages. Quiet reporting limits the information emitted at a ProgressEvent.

Definition at line 297 of file itkSimpleFilterWatcher.h.


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