ITK  5.1.0
Insight Toolkit
Public Types | Public Member Functions | Static Public Member Functions | List of all members
itk::TimeStamp Class Reference

#include <itkTimeStamp.h>

Public Types

using GlobalTimeStampType = std::atomic< ModifiedTimeType >
 
using Self = TimeStamp
 

Public Member Functions

void Delete ()
 
ModifiedTimeType GetMTime () const
 
void Modified ()
 
 TimeStamp ()
 

Static Public Member Functions

static const char * GetNameOfClass ()
 
static SelfNew ()
 
ModifiedTimeType m_ModifiedTime
 
static GlobalTimeStampTypem_GlobalTimeStamp
 
bool operator> (TimeStamp &ts)
 
bool operator< (TimeStamp &ts)
 
 operator ModifiedTimeType () const
 
Selfoperator= (const Self &other)=default
 
 itkGetGlobalDeclarationMacro (GlobalTimeStampType, GlobalTimeStamp)
 

Detailed Description

Generate a unique, increasing time value.

TimeStamp records a unique time when the method Modified() is executed. This time is guaranteed to be monotonically increasing. Classes use this object to record modified and/or execution time. There is built in support for the binary < and > comparison operators between two TimeStamp objects.

Warning
On most platforms, this class uses a lock-free incremental counter. The Modified function can safely be called simultaneously by multiple threads on different instances of the class. However, calling the Modified function by different threads on the same instance of the class can lead to some unexpected behavior. The global counter will always be correct but the local m_ModifiedTime might not (see https://www.itk.org/mailman/private/insight-developers/2009-February/011732.html for more detail).

Definition at line 60 of file itkTimeStamp.h.

Member Typedef Documentation

◆ GlobalTimeStampType

Definition at line 66 of file itkTimeStamp.h.

◆ Self

Standard class type aliases.

Definition at line 64 of file itkTimeStamp.h.

Constructor & Destructor Documentation

◆ TimeStamp()

itk::TimeStamp::TimeStamp ( )
inline

Constructor must remain public because classes instantiate TimeStamps implicitly in their construction.

Definition at line 75 of file itkTimeStamp.h.

Member Function Documentation

◆ Delete()

void itk::TimeStamp::Delete ( )
inline

Destoy this instance.

Definition at line 79 of file itkTimeStamp.h.

◆ GetMTime()

ModifiedTimeType itk::TimeStamp::GetMTime ( ) const
inline

Return this object's Modified time.

Definition at line 103 of file itkTimeStamp.h.

◆ GetNameOfClass()

static const char* itk::TimeStamp::GetNameOfClass ( )
inlinestatic

The class name as a string.

Definition at line 86 of file itkTimeStamp.h.

◆ itkGetGlobalDeclarationMacro()

itk::TimeStamp::itkGetGlobalDeclarationMacro ( GlobalTimeStampType  ,
GlobalTimeStamp   
)
private

Set/Get the pointer to GlobalTimeStamp. Note that SetGlobalTimeStamp is not concurrent thread safe.

◆ Modified()

void itk::TimeStamp::Modified ( )

Set this objects time to the current time. The current time is just a monotonically increasing unsigned long integer. It is possible for this number to wrap around back to zero. This should only happen for processes that have been running for a very long time, while constantly changing objects within the program. When this does occur, the typical consequence should be that some filters will update themselves when really they don't need to.

◆ New()

static Self* itk::TimeStamp::New ( )
static

Create an instance of this class. We don't want to use reference counting.

◆ operator ModifiedTimeType()

itk::TimeStamp::operator ModifiedTimeType ( ) const
inline

Allow for typecasting to unsigned long.

Definition at line 122 of file itkTimeStamp.h.

◆ operator<()

bool itk::TimeStamp::operator< ( TimeStamp ts)
inline

The static GlobalTimeStamp. This is initialized to NULL as the first stage of static initialization. It is then populated on the first call to itk::TimeStamp::Modified() but it can be overridden with SetGlobalTimeStamp().

Definition at line 115 of file itkTimeStamp.h.

References m_ModifiedTime.

◆ operator=()

Self& itk::TimeStamp::operator= ( const Self other)
default

Assignment operator, allows to initialize one time stamp by copying from another.

◆ operator>()

bool itk::TimeStamp::operator> ( TimeStamp ts)
inline

Support comparisons of time stamp objects directly.

Definition at line 110 of file itkTimeStamp.h.

References m_ModifiedTime.

Member Data Documentation

◆ m_GlobalTimeStamp

GlobalTimeStampType* itk::TimeStamp::m_GlobalTimeStamp
staticprivate

The static GlobalTimeStamp. This is initialized to NULL as the first stage of static initialization. It is then populated on the first call to itk::TimeStamp::Modified() but it can be overridden with SetGlobalTimeStamp().

Definition at line 140 of file itkTimeStamp.h.

◆ m_ModifiedTime

ModifiedTimeType itk::TimeStamp::m_ModifiedTime
private

The static GlobalTimeStamp. This is initialized to NULL as the first stage of static initialization. It is then populated on the first call to itk::TimeStamp::Modified() but it can be overridden with SetGlobalTimeStamp().

Definition at line 134 of file itkTimeStamp.h.

Referenced by operator<(), and operator>().


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