ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkTimeStamp.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18/*=========================================================================
19 *
20 * Portions of this file are subject to the VTK Toolkit Version 3 copyright.
21 *
22 * Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
23 *
24 * For complete copyright, license and disclaimer of warranty information
25 * please refer to the NOTICE file at the top of the ITK source tree.
26 *
27 *=========================================================================*/
28#ifndef itkTimeStamp_h
29#define itkTimeStamp_h
30
31#include "itkMacro.h"
32#include "itkIntTypes.h"
33#include <atomic>
34#include "itkSingletonMacro.h"
35
36namespace itk
37{
60class ITKCommon_EXPORT TimeStamp
61{
62public:
64 using Self = TimeStamp;
65
66 using GlobalTimeStampType = std::atomic<ModifiedTimeType>;
67
68#ifndef ITK_LEGACY_REMOVE
73 itkLegacyMacro(static Self * New();)
74
79 itkLegacyMacro(void Delete())
80 {
81 delete this;
82 }
83#endif
84
86 static const char *
88 {
89 return "TimeStamp";
90 }
91
99 void
101
103 [[nodiscard]] ModifiedTimeType
104 GetMTime() const
105 {
106 return m_ModifiedTime;
107 }
108
111 bool
113 {
114 return m_ModifiedTime > ts.m_ModifiedTime;
115 }
116 bool
117 operator<(TimeStamp & ts) const
118 {
119 return m_ModifiedTime < ts.m_ModifiedTime;
120 }
121
123 operator ModifiedTimeType() const { return m_ModifiedTime; }
124
125private:
129
131
137};
138} // end namespace itk
139
140#endif
Generate a unique, increasing time value.
ModifiedTimeType m_ModifiedTime
TimeStamp Self
bool operator<(TimeStamp &ts) const
itkGetGlobalDeclarationMacro(GlobalTimeStampType, GlobalTimeStamp)
ModifiedTimeType GetMTime() const
static GlobalTimeStampType * m_GlobalTimeStamp
static const char * GetNameOfClass()
bool operator>(TimeStamp &ts) const
std::atomic< ModifiedTimeType > GlobalTimeStampType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
SizeValueType ModifiedTimeType