FREE::SetupOptimizationMetricThreadBase< TMonitor > Class Template Reference
[Setup optimization metric]

This is the base class for threads used by multi threaded setup optimization metrics. More...

#include <freSetupOptimizationMetricThreadBase.h>

Inheritance diagram for FREE::SetupOptimizationMetricThreadBase< TMonitor >:

Inheritance graph
FREE::AccuracySOMetricThread\< FREE::AccuracySOMetricMonitor \>FREE::ImageClassificationSOMetricThread\< FREE::ImageClassificationSOMetricMonitor \>FREE::ImageDifferenceSOMetricThread\< FREE::ImageDifferenceSOMetricMonitor \>
[legend]

List of all members.

Public Types

typedef
SetupOptimizationMetricThreadBase
< TMonitor > 
Self
typedef itk::Object Superclass
typedef
itk::SmartPointer
< Self
Pointer
typedef
itk::SmartPointer
< const Self
ConstPointer
typedef long ThreadIDType
typedef TMonitor MonitorType
typedef
MonitorType::ResultType 
ResultType

Public Member Functions

virtual const char * GetNameOfClass () const
void SetMonitor (MonitorType *pMonitor)
ThreadIDType GetThreadID () const
void SetThreadID (const ThreadIDType &id)
virtual void Execute ()

Protected Types

typedef
ProgressCtrlEvent
< SetupOptimizationMetricThreadBase
< TMonitor > > 
ProgressEventType

Protected Member Functions

 SetupOptimizationMetricThreadBase ()
virtual ~SetupOptimizationMetricThreadBase ()
virtual bool ProcessSetup (Setup *pAdaptationSetup)=0 throw ()
void LockExecutionMutex ()
void UnlockExecutionMutex ()
void OnSessionProgress (const IDPath &senderID, const ProgressCtrlEventBase::StatusID status, const std::string &sComment, SessionComponentCache *pSender, long threadID)

Protected Attributes

ProgressEventType::Pointer m_EvaluatedSessionProgressEvent
std::string m_FailureComment
ResultType m_Results

Private Member Functions

 SetupOptimizationMetricThreadBase (const Self &)
void operator= (const Self &)

Private Attributes

ThreadIDType m_ThreadID
MonitorTypem_pMonitor
itk::SimpleMutexLock m_ExecutionMutex


Detailed Description

template<typename TMonitor>
class FREE::SetupOptimizationMetricThreadBase< TMonitor >

This is the base class for threads used by multi threaded setup optimization metrics.

SetupOptimizationMetricThreadBase is the base class for metric threads. Every thread uses the monitor to get the next adaptation, to return the results or to notify a processing failure.

Definition at line 45 of file freSetupOptimizationMetricThreadBase.h.


Member Typedef Documentation

template<typename TMonitor>
typedef SetupOptimizationMetricThreadBase<TMonitor> FREE::SetupOptimizationMetricThreadBase< TMonitor >::Self

Standard class typedefs.

Reimplemented in FREE::AccuracySOMetricThread< VImageDimension >, FREE::ImageClassificationSOMetricThread< VImageDimension >, and FREE::ImageDifferenceSOMetricThread< VImageDimension >.

Definition at line 50 of file freSetupOptimizationMetricThreadBase.h.

template<typename TMonitor>
typedef itk::Object FREE::SetupOptimizationMetricThreadBase< TMonitor >::Superclass

Reimplemented in FREE::AccuracySOMetricThread< VImageDimension >, FREE::ImageClassificationSOMetricThread< VImageDimension >, and FREE::ImageDifferenceSOMetricThread< VImageDimension >.

Definition at line 51 of file freSetupOptimizationMetricThreadBase.h.

template<typename TMonitor>
typedef itk::SmartPointer<Self> FREE::SetupOptimizationMetricThreadBase< TMonitor >::Pointer

Reimplemented in FREE::AccuracySOMetricThread< VImageDimension >, FREE::ImageClassificationSOMetricThread< VImageDimension >, and FREE::ImageDifferenceSOMetricThread< VImageDimension >.

Definition at line 52 of file freSetupOptimizationMetricThreadBase.h.

template<typename TMonitor>
typedef itk::SmartPointer<const Self> FREE::SetupOptimizationMetricThreadBase< TMonitor >::ConstPointer

Reimplemented in FREE::AccuracySOMetricThread< VImageDimension >, FREE::ImageClassificationSOMetricThread< VImageDimension >, and FREE::ImageDifferenceSOMetricThread< VImageDimension >.

Definition at line 53 of file freSetupOptimizationMetricThreadBase.h.

template<typename TMonitor>
typedef long FREE::SetupOptimizationMetricThreadBase< TMonitor >::ThreadIDType

Reimplemented in FREE::AccuracySOMetricThread< VImageDimension >, FREE::ImageClassificationSOMetricThread< VImageDimension >, and FREE::ImageDifferenceSOMetricThread< VImageDimension >.

Definition at line 55 of file freSetupOptimizationMetricThreadBase.h.

template<typename TMonitor>
typedef TMonitor FREE::SetupOptimizationMetricThreadBase< TMonitor >::MonitorType

Reimplemented in FREE::AccuracySOMetricThread< VImageDimension >, FREE::ImageClassificationSOMetricThread< VImageDimension >, and FREE::ImageDifferenceSOMetricThread< VImageDimension >.

Definition at line 57 of file freSetupOptimizationMetricThreadBase.h.

template<typename TMonitor>
typedef MonitorType::ResultType FREE::SetupOptimizationMetricThreadBase< TMonitor >::ResultType

Class containing the results of one adaptation evaluation /*depends on the monitored metric and therefore a template.

Reimplemented in FREE::AccuracySOMetricThread< VImageDimension >, FREE::ImageClassificationSOMetricThread< VImageDimension >, and FREE::ImageDifferenceSOMetricThread< VImageDimension >.

Definition at line 60 of file freSetupOptimizationMetricThreadBase.h.

template<typename TMonitor>
typedef ProgressCtrlEvent< SetupOptimizationMetricThreadBase<TMonitor> > FREE::SetupOptimizationMetricThreadBase< TMonitor >::ProgressEventType [protected]

Definition at line 102 of file freSetupOptimizationMetricThreadBase.h.


Constructor & Destructor Documentation

template<typename TMonitor>
FREE::SetupOptimizationMetricThreadBase< TMonitor >::SetupOptimizationMetricThreadBase (  )  [inline, protected]

Definition at line 93 of file freSetupOptimizationMetricThreadBase.txx.

References FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_EvaluatedSessionProgressEvent, FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_FailureComment, FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_pMonitor, FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_ThreadID, FREE::NotificationEventBase::New(), and FREE::SetupOptimizationMetricThreadBase< TMonitor >::OnSessionProgress().

Here is the call graph for this function:

FREE::NotificationEventBase::NewFREE::SetupOptimizationMetricThreadBase::OnSessionProgress

template<typename TMonitor>
FREE::SetupOptimizationMetricThreadBase< TMonitor >::~SetupOptimizationMetricThreadBase (  )  [inline, protected, virtual]

Definition at line 104 of file freSetupOptimizationMetricThreadBase.txx.

References FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_EvaluatedSessionProgressEvent, and FREE::ControllerCentral::RemoveOnProgressEvent().

Here is the call graph for this function:

FREE::ControllerCentral::RemoveOnProgressEvent

template<typename TMonitor>
FREE::SetupOptimizationMetricThreadBase< TMonitor >::SetupOptimizationMetricThreadBase ( const Self  )  [private]


Member Function Documentation

template<typename TMonitor>
virtual const char* FREE::SetupOptimizationMetricThreadBase< TMonitor >::GetNameOfClass (  )  const [inline, virtual]

Run-time type information (and related methods).

Reimplemented in FREE::AccuracySOMetricThread< VImageDimension >, FREE::ImageClassificationSOMetricThread< VImageDimension >, and FREE::ImageDifferenceSOMetricThread< VImageDimension >.

Definition at line 63 of file freSetupOptimizationMetricThreadBase.h.

template<typename TMonitor>
void FREE::SetupOptimizationMetricThreadBase< TMonitor >::SetMonitor ( MonitorType pMonitor  )  [inline]

Sets the monitor of the thread

Definition at line 35 of file freSetupOptimizationMetricThreadBase.txx.

References FREE::SetupOptimizationMetricThreadBase< TMonitor >::LockExecutionMutex(), FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_pMonitor, and FREE::SetupOptimizationMetricThreadBase< TMonitor >::UnlockExecutionMutex().

Here is the call graph for this function:

FREE::SetupOptimizationMetricThreadBase::LockExecutionMutexFREE::SetupOptimizationMetricThreadBase::UnlockExecutionMutex

template<typename TMonitor>
SetupOptimizationMetricThreadBase< TMonitor >::ThreadIDType FREE::SetupOptimizationMetricThreadBase< TMonitor >::GetThreadID (  )  const [inline]

Definition at line 45 of file freSetupOptimizationMetricThreadBase.txx.

References FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_ThreadID.

template<typename TMonitor>
void FREE::SetupOptimizationMetricThreadBase< TMonitor >::SetThreadID ( const ThreadIDType id  )  [inline]

Definition at line 53 of file freSetupOptimizationMetricThreadBase.txx.

References FREE::SetupOptimizationMetricThreadBase< TMonitor >::LockExecutionMutex(), FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_ThreadID, and FREE::SetupOptimizationMetricThreadBase< TMonitor >::UnlockExecutionMutex().

Here is the call graph for this function:

FREE::SetupOptimizationMetricThreadBase::LockExecutionMutexFREE::SetupOptimizationMetricThreadBase::UnlockExecutionMutex

template<typename TMonitor>
void FREE::SetupOptimizationMetricThreadBase< TMonitor >::Execute (  )  [inline, virtual]

Executes the thread. Reimpolement this function to change the execution behavior. The default handling requests a setup from the monitor and calls ProcessSetup as long there is work to do. After executing ProcessSetup() the m_Results contain the results for the setup, if the return value is true. Otherwise the return is false and the evaluation has failed. In the case of failure it will be notified via the monitor. If the processing was successfull, the results will be passed to the monitor.

Definition at line 63 of file freSetupOptimizationMetricThreadBase.txx.

References FREE::SetupOptimizationMetricThreadBase< TMonitor >::LockExecutionMutex(), FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_pMonitor, FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_Results, throwExceptionMacro, and FREE::SetupOptimizationMetricThreadBase< TMonitor >::UnlockExecutionMutex().

Here is the call graph for this function:

FREE::SetupOptimizationMetricThreadBase::LockExecutionMutexFREE::SetupOptimizationMetricThreadBase::UnlockExecutionMutex

template<typename TMonitor>
virtual bool FREE::SetupOptimizationMetricThreadBase< TMonitor >::ProcessSetup ( Setup pAdaptationSetup  )  throw () [protected, pure virtual]

This method should be implemented in derived classes. The method processes the passed adaptation setup. Returns false if the evaluation fails for any reason. In this case m_FailureComment should contain the reason for the failure. If Evaluation was successful the return is true, m_Results should then contain the results of the evaluation. The function itself should throw no exceptions.

Parameters:
[in] pAdaptationSetup Pointer to the setup that should be evaluated.
Returns:
True if evaluation was sucessfull.

Implemented in FREE::AccuracySOMetricThread< VImageDimension >, FREE::ImageClassificationSOMetricThread< VImageDimension >, and FREE::ImageDifferenceSOMetricThread< VImageDimension >.

template<typename TMonitor>
void FREE::SetupOptimizationMetricThreadBase< TMonitor >::LockExecutionMutex (  )  [inline, protected]

Definition at line 112 of file freSetupOptimizationMetricThreadBase.txx.

References FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_ExecutionMutex.

Referenced by FREE::SetupOptimizationMetricThreadBase< TMonitor >::Execute(), FREE::ImageClassificationSOMetricThread< VImageDimension >::SetLowerClassThreshold(), FREE::SetupOptimizationMetricThreadBase< TMonitor >::SetMonitor(), FREE::AccuracySOMetricThread< VImageDimension >::SetMovingPointsPath(), FREE::AccuracySOMetricThread< VImageDimension >::SetReferenceFieldPath(), FREE::ImageDifferenceSOMetricThread< VImageDimension >::SetReferenceImagePath(), FREE::ImageClassificationSOMetricThread< VImageDimension >::SetReferenceImagePath(), FREE::AccuracySOMetricThread< VImageDimension >::SetReferencePointsPath(), FREE::AccuracySOMetricThread< VImageDimension >::SetResultFieldPath(), FREE::ImageDifferenceSOMetricThread< VImageDimension >::SetResultImagePath(), FREE::ImageClassificationSOMetricThread< VImageDimension >::SetResultImagePath(), FREE::SetupOptimizationMetricThreadBase< TMonitor >::SetThreadID(), FREE::ImageClassificationSOMetricThread< VImageDimension >::SetUpperClassThreshold(), and FREE::AccuracySOMetricThread< VImageDimension >::SetUseField().

template<typename TMonitor>
void FREE::SetupOptimizationMetricThreadBase< TMonitor >::UnlockExecutionMutex (  )  [inline, protected]

Definition at line 120 of file freSetupOptimizationMetricThreadBase.txx.

References FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_ExecutionMutex.

Referenced by FREE::SetupOptimizationMetricThreadBase< TMonitor >::Execute(), FREE::ImageClassificationSOMetricThread< VImageDimension >::SetLowerClassThreshold(), FREE::SetupOptimizationMetricThreadBase< TMonitor >::SetMonitor(), FREE::AccuracySOMetricThread< VImageDimension >::SetMovingPointsPath(), FREE::AccuracySOMetricThread< VImageDimension >::SetReferenceFieldPath(), FREE::ImageDifferenceSOMetricThread< VImageDimension >::SetReferenceImagePath(), FREE::ImageClassificationSOMetricThread< VImageDimension >::SetReferenceImagePath(), FREE::AccuracySOMetricThread< VImageDimension >::SetReferencePointsPath(), FREE::AccuracySOMetricThread< VImageDimension >::SetResultFieldPath(), FREE::ImageDifferenceSOMetricThread< VImageDimension >::SetResultImagePath(), FREE::ImageClassificationSOMetricThread< VImageDimension >::SetResultImagePath(), FREE::SetupOptimizationMetricThreadBase< TMonitor >::SetThreadID(), FREE::ImageClassificationSOMetricThread< VImageDimension >::SetUpperClassThreshold(), and FREE::AccuracySOMetricThread< VImageDimension >::SetUseField().

template<typename TMonitor>
void FREE::SetupOptimizationMetricThreadBase< TMonitor >::OnSessionProgress ( const IDPath senderID,
const ProgressCtrlEventBase::StatusID  status,
const std::string &  sComment,
SessionComponentCache pSender,
long  threadID 
) [inline, protected]

This method can be added to the progress events of the ControllerCentral to allow the thread to inform the monitor about any evaluation progress

Definition at line 128 of file freSetupOptimizationMetricThreadBase.txx.

References FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_pMonitor.

Referenced by FREE::SetupOptimizationMetricThreadBase< TMonitor >::SetupOptimizationMetricThreadBase().

template<typename TMonitor>
void FREE::SetupOptimizationMetricThreadBase< TMonitor >::operator= ( const Self  )  [private]


Member Data Documentation

template<typename TMonitor>
ProgressEventType::Pointer FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_EvaluatedSessionProgressEvent [protected]

Definition at line 103 of file freSetupOptimizationMetricThreadBase.h.

Referenced by FREE::ImageDifferenceSOMetricThread< VImageDimension >::ProcessSetup(), FREE::ImageClassificationSOMetricThread< VImageDimension >::ProcessSetup(), FREE::AccuracySOMetricThread< VImageDimension >::ProcessSetup(), FREE::SetupOptimizationMetricThreadBase< TMonitor >::SetupOptimizationMetricThreadBase(), and FREE::SetupOptimizationMetricThreadBase< TMonitor >::~SetupOptimizationMetricThreadBase().

template<typename TMonitor>
std::string FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_FailureComment [protected]

Definition at line 113 of file freSetupOptimizationMetricThreadBase.h.

Referenced by FREE::ImageDifferenceSOMetricThread< VImageDimension >::ProcessSetup(), FREE::ImageClassificationSOMetricThread< VImageDimension >::ProcessSetup(), FREE::AccuracySOMetricThread< VImageDimension >::ProcessSetup(), and FREE::SetupOptimizationMetricThreadBase< TMonitor >::SetupOptimizationMetricThreadBase().

template<typename TMonitor>
ResultType FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_Results [protected]

Definition at line 114 of file freSetupOptimizationMetricThreadBase.h.

Referenced by FREE::AccuracySOMetricThread< VImageDimension >::EvaluateField(), FREE::AccuracySOMetricThread< VImageDimension >::EvaluatePoints(), FREE::ImageDifferenceSOMetricThread< VImageDimension >::EvaluateResult(), FREE::ImageClassificationSOMetricThread< VImageDimension >::EvaluateResult(), FREE::SetupOptimizationMetricThreadBase< TMonitor >::Execute(), FREE::ImageDifferenceSOMetricThread< VImageDimension >::ProcessSetup(), FREE::ImageClassificationSOMetricThread< VImageDimension >::ProcessSetup(), and FREE::AccuracySOMetricThread< VImageDimension >::ProcessSetup().

template<typename TMonitor>
ThreadIDType FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_ThreadID [private]

Definition at line 118 of file freSetupOptimizationMetricThreadBase.h.

Referenced by FREE::SetupOptimizationMetricThreadBase< TMonitor >::GetThreadID(), FREE::SetupOptimizationMetricThreadBase< TMonitor >::SetThreadID(), and FREE::SetupOptimizationMetricThreadBase< TMonitor >::SetupOptimizationMetricThreadBase().

template<typename TMonitor>
MonitorType* FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_pMonitor [private]

Definition at line 120 of file freSetupOptimizationMetricThreadBase.h.

Referenced by FREE::SetupOptimizationMetricThreadBase< TMonitor >::Execute(), FREE::SetupOptimizationMetricThreadBase< TMonitor >::OnSessionProgress(), FREE::SetupOptimizationMetricThreadBase< TMonitor >::SetMonitor(), and FREE::SetupOptimizationMetricThreadBase< TMonitor >::SetupOptimizationMetricThreadBase().

template<typename TMonitor>
itk::SimpleMutexLock FREE::SetupOptimizationMetricThreadBase< TMonitor >::m_ExecutionMutex [private]

Responsible for locking the processing, to ensure no change of while thread is in Execution.

Definition at line 124 of file freSetupOptimizationMetricThreadBase.h.

Referenced by FREE::SetupOptimizationMetricThreadBase< TMonitor >::LockExecutionMutex(), and FREE::SetupOptimizationMetricThreadBase< TMonitor >::UnlockExecutionMutex().


The documentation for this class was generated from the following files:
Generated at Sat Oct 13 18:17:53 2007 for f.r.e.e. - Flexible Registration and Evaluation Engine by doxygen 1.5.3 written by Dimitri van Heesch, © 1997-2000