diff options
Diffstat (limited to 'Source/cmTimestamp.h')
-rw-r--r-- | Source/cmTimestamp.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Source/cmTimestamp.h b/Source/cmTimestamp.h new file mode 100644 index 0000000..fdee564 --- /dev/null +++ b/Source/cmTimestamp.h @@ -0,0 +1,36 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef cmTimestamp_h +#define cmTimestamp_h + +#include <cmConfigure.h> // IWYU pragma: keep + +#include <string> +#include <time.h> + +/** \class cmTimestamp + * \brief Utility class to generate string representation of a timestamp + * + */ +class cmTimestamp +{ +public: + cmTimestamp() {} + + std::string CurrentTime(const std::string& formatString, bool utcFlag); + + std::string FileModificationTime(const char* path, + const std::string& formatString, + bool utcFlag); + +private: + time_t CreateUtcTimeTFromTm(struct tm& timeStruct) const; + + std::string CreateTimestampFromTimeT(time_t timeT, std::string formatString, + bool utcFlag) const; + + std::string AddTimestampComponent(char flag, struct tm& timeStruct, + time_t timeT) const; +}; + +#endif |