CASToR  3.2
Tomographic Reconstruction (PET/SPECT/CT)
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
sChronoManager Class Reference

This class is designed to manage some profiling of the code. More...

#include <sChronoManager.hh>

Collaboration diagram for sChronoManager:
Collaboration graph

Public Member Functions

 ~sChronoManager ()
 The destructor of sChronoManager. More...
 
int CheckParameters ()
 Check validity of all parameters. More...
 
int Initialize ()
 Initialize all thread-safe buffers for profiling. More...
 
void Display ()
 Display the results of the duration buffers. More...
 
void StartIterativeDataUpdateStep1 (int a_thread)
 
void StopIterativeDataUpdateStep1 (int a_thread)
 
void StartIterativeDataUpdateStep2 (int a_thread)
 
void StopIterativeDataUpdateStep2 (int a_thread)
 
void StartIterativeDataUpdateStep3 (int a_thread)
 
void StopIterativeDataUpdateStep3 (int a_thread)
 
void StartIterativeDataUpdateStep4 (int a_thread)
 
void StopIterativeDataUpdateStep4 (int a_thread)
 
void StartConvolution ()
 Start the timer for duration of convolution. More...
 
void StopConvolution ()
 Stop the timer for duration of convolution. More...
 
void StartCustomStep (int a_thread, int a_step)
 
void StopCustomStep (int a_thread, int a_step)
 
void SetNbThreads (int a_nbThreadsForProjection, int a_nbThreadsForImageComputation)
 
void SetNbCustomSteps (int a_nbCustomSteps)
 
void SetVerbose (int a_verbose)
 
 ~sChronoManager ()
 
int CheckParameters ()
 
int Initialize ()
 
void Display ()
 
void StartIterativeDataUpdateStep1 (int a_thread)
 
void StopIterativeDataUpdateStep1 (int a_thread)
 
void StartIterativeDataUpdateStep2 (int a_thread)
 
void StopIterativeDataUpdateStep2 (int a_thread)
 
void StartIterativeDataUpdateStep3 (int a_thread)
 
void StopIterativeDataUpdateStep3 (int a_thread)
 
void StartIterativeDataUpdateStep4 (int a_thread)
 
void StopIterativeDataUpdateStep4 (int a_thread)
 
void StartConvolution ()
 
void StopConvolution ()
 
void StartCustomStep (int a_thread, int a_step)
 
void StopCustomStep (int a_thread, int a_step)
 
void SetNbThreads (int a_nbThreadsForProjection, int a_nbThreadsForImageComputation)
 
void SetNbCustomSteps (int a_nbCustomSteps)
 
void SetVerbose (int a_verbose)
 

Static Public Member Functions

static sChronoManagerGetInstance ()
 Instantiate the singleton if not already done, then return the pointer to its instance. More...
 
static sChronoManagerGetInstance ()
 

Private Member Functions

 sChronoManager ()
 The constructor of sChronoManager. More...
 
 sChronoManager (sChronoManager const &)
 
void operator= (sChronoManager const &)
 
 sChronoManager ()
 
 sChronoManager (sChronoManager const &)
 
void operator= (sChronoManager const &)
 

Private Attributes

int m_nbThreadsForProjection
 
int m_nbThreadsForImageComputation
 
int m_nbThreadsMax
 
DurationNanomp_durationIterativeDataUpdateStep1
 
DurationNanomp_durationIterativeDataUpdateStep2
 
DurationNanomp_durationIterativeDataUpdateStep3
 
DurationNanomp_durationIterativeDataUpdateStep4
 
ChronoTimemp_startIterativeDataUpdateStep1
 
ChronoTimemp_startIterativeDataUpdateStep2
 
ChronoTimemp_startIterativeDataUpdateStep3
 
ChronoTimemp_startIterativeDataUpdateStep4
 
DurationNano m_durationConvolution
 
ChronoTime m_startConvolution
 
int m_nbCustomSteps
 
DurationNano ** mpp_durationCustomSteps
 
ChronoTime ** mpp_startCustomSteps
 
int m_verbose
 

Static Private Attributes

static sChronoManagermp_Instance = NULL
 

Detailed Description

This class is designed to manage some profiling of the code.

We'll see for details...

Definition at line 27 of file code/include/management/sChronoManager.hh.

Constructor & Destructor Documentation

◆ ~sChronoManager() [1/2]

public sChronoManager::~sChronoManager ( )
inline

The destructor of sChronoManager.

This is the default and unique destructor. It simply replace the instance pointer by NULL.

Definition at line 47 of file code/include/management/sChronoManager.hh.

Here is the call graph for this function:

◆ sChronoManager() [1/4]

sChronoManager::sChronoManager ( )
private

The constructor of sChronoManager.

This is the default and unique constructor. It does nothing.

Definition at line 23 of file code/src/management/sChronoManager.cc.

Here is the caller graph for this function:

◆ sChronoManager() [2/4]

sChronoManager::sChronoManager ( sChronoManager const &  )
inlineprivate

Definition at line 193 of file code/include/management/sChronoManager.hh.

◆ ~sChronoManager() [2/2]

sChronoManager::~sChronoManager ( )
inline

Definition at line 47 of file include/management/sChronoManager.hh.

Here is the call graph for this function:

◆ sChronoManager() [3/4]

sChronoManager::sChronoManager ( )
private

◆ sChronoManager() [4/4]

sChronoManager::sChronoManager ( sChronoManager const &  )
inlineprivate

Definition at line 193 of file include/management/sChronoManager.hh.

Member Function Documentation

◆ CheckParameters() [1/2]

int sChronoManager::CheckParameters ( )

Check validity of all parameters.

Returns
0 if success, another value otherwise

Definition at line 52 of file code/src/management/sChronoManager.cc.

Here is the caller graph for this function:

◆ CheckParameters() [2/2]

int sChronoManager::CheckParameters ( )

◆ Display() [1/2]

void sChronoManager::Display ( )

Display the results of the duration buffers.

Definition at line 129 of file code/src/management/sChronoManager.cc.

Here is the caller graph for this function:

◆ Display() [2/2]

void sChronoManager::Display ( )

◆ GetInstance() [1/2]

public static sChronoManager * sChronoManager::GetInstance ( )
inlinestatic

Instantiate the singleton if not already done, then return the pointer to its instance.

Returns
mp_Instance

Definition at line 37 of file code/include/management/sChronoManager.hh.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetInstance() [2/2]

static sChronoManager* sChronoManager::GetInstance ( )
inlinestatic

Definition at line 37 of file include/management/sChronoManager.hh.

Here is the call graph for this function:

◆ Initialize() [1/2]

int sChronoManager::Initialize ( )

◆ Initialize() [2/2]

int sChronoManager::Initialize ( )

Initialize all thread-safe buffers for profiling.

Returns
0 if success, another value otherwise

Definition at line 86 of file code/src/management/sChronoManager.cc.

Here is the caller graph for this function:

◆ operator=() [1/2]

void sChronoManager::operator= ( sChronoManager const &  )
inlineprivate

Definition at line 194 of file code/include/management/sChronoManager.hh.

◆ operator=() [2/2]

void sChronoManager::operator= ( sChronoManager const &  )
inlineprivate

Definition at line 194 of file include/management/sChronoManager.hh.

◆ SetNbCustomSteps() [1/2]

void sChronoManager::SetNbCustomSteps ( int  a_nbCustomSteps)
inline

Definition at line 173 of file code/include/management/sChronoManager.hh.

Here is the caller graph for this function:

◆ SetNbCustomSteps() [2/2]

void sChronoManager::SetNbCustomSteps ( int  a_nbCustomSteps)
inline

Definition at line 173 of file include/management/sChronoManager.hh.

◆ SetNbThreads() [1/2]

void sChronoManager::SetNbThreads ( int  a_nbThreadsForProjection,
int  a_nbThreadsForImageComputation 
)
inline

Definition at line 165 of file code/include/management/sChronoManager.hh.

Here is the caller graph for this function:

◆ SetNbThreads() [2/2]

void sChronoManager::SetNbThreads ( int  a_nbThreadsForProjection,
int  a_nbThreadsForImageComputation 
)
inline

Definition at line 165 of file include/management/sChronoManager.hh.

◆ SetVerbose() [1/2]

void sChronoManager::SetVerbose ( int  a_verbose)
inline

Definition at line 180 of file include/management/sChronoManager.hh.

Here is the call graph for this function:

◆ SetVerbose() [2/2]

void sChronoManager::SetVerbose ( int  a_verbose)
inline

Definition at line 180 of file code/include/management/sChronoManager.hh.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ StartConvolution() [1/2]

void sChronoManager::StartConvolution ( )
inline

Definition at line 133 of file include/management/sChronoManager.hh.

◆ StartConvolution() [2/2]

public void sChronoManager::StartConvolution ( )
inline

Start the timer for duration of convolution.

Definition at line 133 of file code/include/management/sChronoManager.hh.

Here is the caller graph for this function:

◆ StartCustomStep() [1/2]

void sChronoManager::StartCustomStep ( int  a_thread,
int  a_step 
)
inline

Definition at line 147 of file include/management/sChronoManager.hh.

◆ StartCustomStep() [2/2]

void sChronoManager::StartCustomStep ( int  a_thread,
int  a_step 
)
inline

Definition at line 147 of file code/include/management/sChronoManager.hh.

Here is the caller graph for this function:

◆ StartIterativeDataUpdateStep1() [1/2]

void sChronoManager::StartIterativeDataUpdateStep1 ( int  a_thread)
inline

Definition at line 78 of file code/include/management/sChronoManager.hh.

Here is the caller graph for this function:

◆ StartIterativeDataUpdateStep1() [2/2]

void sChronoManager::StartIterativeDataUpdateStep1 ( int  a_thread)
inline

Definition at line 78 of file include/management/sChronoManager.hh.

◆ StartIterativeDataUpdateStep2() [1/2]

void sChronoManager::StartIterativeDataUpdateStep2 ( int  a_thread)
inline

Definition at line 92 of file include/management/sChronoManager.hh.

◆ StartIterativeDataUpdateStep2() [2/2]

void sChronoManager::StartIterativeDataUpdateStep2 ( int  a_thread)
inline

Definition at line 92 of file code/include/management/sChronoManager.hh.

Here is the caller graph for this function:

◆ StartIterativeDataUpdateStep3() [1/2]

void sChronoManager::StartIterativeDataUpdateStep3 ( int  a_thread)
inline

Definition at line 106 of file code/include/management/sChronoManager.hh.

Here is the caller graph for this function:

◆ StartIterativeDataUpdateStep3() [2/2]

void sChronoManager::StartIterativeDataUpdateStep3 ( int  a_thread)
inline

Definition at line 106 of file include/management/sChronoManager.hh.

◆ StartIterativeDataUpdateStep4() [1/2]

void sChronoManager::StartIterativeDataUpdateStep4 ( int  a_thread)
inline

Definition at line 120 of file include/management/sChronoManager.hh.

◆ StartIterativeDataUpdateStep4() [2/2]

void sChronoManager::StartIterativeDataUpdateStep4 ( int  a_thread)
inline

Definition at line 120 of file code/include/management/sChronoManager.hh.

Here is the caller graph for this function:

◆ StopConvolution() [1/2]

public void sChronoManager::StopConvolution ( )
inline

Stop the timer for duration of convolution.

Definition at line 139 of file code/include/management/sChronoManager.hh.

Here is the caller graph for this function:

◆ StopConvolution() [2/2]

void sChronoManager::StopConvolution ( )
inline

Definition at line 139 of file include/management/sChronoManager.hh.

◆ StopCustomStep() [1/2]

void sChronoManager::StopCustomStep ( int  a_thread,
int  a_step 
)
inline

Definition at line 153 of file include/management/sChronoManager.hh.

◆ StopCustomStep() [2/2]

void sChronoManager::StopCustomStep ( int  a_thread,
int  a_step 
)
inline

Definition at line 153 of file code/include/management/sChronoManager.hh.

Here is the caller graph for this function:

◆ StopIterativeDataUpdateStep1() [1/2]

void sChronoManager::StopIterativeDataUpdateStep1 ( int  a_thread)
inline

Definition at line 85 of file code/include/management/sChronoManager.hh.

Here is the caller graph for this function:

◆ StopIterativeDataUpdateStep1() [2/2]

void sChronoManager::StopIterativeDataUpdateStep1 ( int  a_thread)
inline

Definition at line 85 of file include/management/sChronoManager.hh.

◆ StopIterativeDataUpdateStep2() [1/2]

void sChronoManager::StopIterativeDataUpdateStep2 ( int  a_thread)
inline

Definition at line 99 of file include/management/sChronoManager.hh.

◆ StopIterativeDataUpdateStep2() [2/2]

void sChronoManager::StopIterativeDataUpdateStep2 ( int  a_thread)
inline

Definition at line 99 of file code/include/management/sChronoManager.hh.

Here is the caller graph for this function:

◆ StopIterativeDataUpdateStep3() [1/2]

void sChronoManager::StopIterativeDataUpdateStep3 ( int  a_thread)
inline

Definition at line 113 of file include/management/sChronoManager.hh.

◆ StopIterativeDataUpdateStep3() [2/2]

void sChronoManager::StopIterativeDataUpdateStep3 ( int  a_thread)
inline

Definition at line 113 of file code/include/management/sChronoManager.hh.

Here is the caller graph for this function:

◆ StopIterativeDataUpdateStep4() [1/2]

void sChronoManager::StopIterativeDataUpdateStep4 ( int  a_thread)
inline

Definition at line 127 of file include/management/sChronoManager.hh.

◆ StopIterativeDataUpdateStep4() [2/2]

void sChronoManager::StopIterativeDataUpdateStep4 ( int  a_thread)
inline

Definition at line 127 of file code/include/management/sChronoManager.hh.

Here is the caller graph for this function:

Member Data Documentation

◆ m_durationConvolution

DurationNano sChronoManager::m_durationConvolution
private

Definition at line 213 of file code/include/management/sChronoManager.hh.

◆ m_nbCustomSteps

int sChronoManager::m_nbCustomSteps
private

Definition at line 216 of file code/include/management/sChronoManager.hh.

◆ m_nbThreadsForImageComputation

int sChronoManager::m_nbThreadsForImageComputation
private

Definition at line 202 of file code/include/management/sChronoManager.hh.

◆ m_nbThreadsForProjection

int sChronoManager::m_nbThreadsForProjection
private

Definition at line 201 of file code/include/management/sChronoManager.hh.

◆ m_nbThreadsMax

int sChronoManager::m_nbThreadsMax
private

Definition at line 203 of file code/include/management/sChronoManager.hh.

◆ m_startConvolution

ChronoTime sChronoManager::m_startConvolution
private

Definition at line 214 of file code/include/management/sChronoManager.hh.

◆ m_verbose

int sChronoManager::m_verbose
private

Definition at line 220 of file code/include/management/sChronoManager.hh.

◆ mp_durationIterativeDataUpdateStep1

DurationNano * sChronoManager::mp_durationIterativeDataUpdateStep1
private

Definition at line 205 of file code/include/management/sChronoManager.hh.

◆ mp_durationIterativeDataUpdateStep2

DurationNano * sChronoManager::mp_durationIterativeDataUpdateStep2
private

Definition at line 206 of file code/include/management/sChronoManager.hh.

◆ mp_durationIterativeDataUpdateStep3

DurationNano * sChronoManager::mp_durationIterativeDataUpdateStep3
private

Definition at line 207 of file code/include/management/sChronoManager.hh.

◆ mp_durationIterativeDataUpdateStep4

DurationNano * sChronoManager::mp_durationIterativeDataUpdateStep4
private

Definition at line 208 of file code/include/management/sChronoManager.hh.

◆ mp_Instance

sChronoManager * sChronoManager::mp_Instance = NULL
staticprivate

Pointer to this singleton object

Definition at line 194 of file code/include/management/sChronoManager.hh.

◆ mp_startIterativeDataUpdateStep1

ChronoTime * sChronoManager::mp_startIterativeDataUpdateStep1
private

Definition at line 209 of file code/include/management/sChronoManager.hh.

◆ mp_startIterativeDataUpdateStep2

ChronoTime * sChronoManager::mp_startIterativeDataUpdateStep2
private

Definition at line 210 of file code/include/management/sChronoManager.hh.

◆ mp_startIterativeDataUpdateStep3

ChronoTime * sChronoManager::mp_startIterativeDataUpdateStep3
private

Definition at line 211 of file code/include/management/sChronoManager.hh.

◆ mp_startIterativeDataUpdateStep4

ChronoTime * sChronoManager::mp_startIterativeDataUpdateStep4
private

Definition at line 212 of file code/include/management/sChronoManager.hh.

◆ mpp_durationCustomSteps

DurationNano ** sChronoManager::mpp_durationCustomSteps
private

Definition at line 217 of file code/include/management/sChronoManager.hh.

◆ mpp_startCustomSteps

ChronoTime ** sChronoManager::mpp_startCustomSteps
private

Definition at line 218 of file code/include/management/sChronoManager.hh.


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