diff options
Diffstat (limited to 'core/src/Model/Workflow/Values/Basic.cpp')
-rw-r--r-- | core/src/Model/Workflow/Values/Basic.cpp | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/core/src/Model/Workflow/Values/Basic.cpp b/core/src/Model/Workflow/Values/Basic.cpp deleted file mode 100644 index 198387c..0000000 --- a/core/src/Model/Workflow/Values/Basic.cpp +++ /dev/null @@ -1,111 +0,0 @@ -#include "Basic.hpp" - -#include <charconv> -#include <cmath> -#include <limits> - -bool NumericValue::IsInstance(const BaseValue* value) -{ - return value->GetKind() == KD_Numeric; -} - -NumericValue::NumericValue() - : BaseValue(BaseValue::KD_Numeric) -{ -} - -template <class T, int kMaxSize> -static std::string NumberToString(T value) -{ - char buf[kMaxSize]; - auto res = std::to_chars(buf, buf + kMaxSize, value); - if (res.ec == std::errc()) { - return std::string(buf, res.ptr); - } else { - return "<err>"; - } -} - -std::string NumericValue::GetTruncatedString() const -{ - constexpr auto kMaxSize = std::numeric_limits<int64_t>::digits10; - return ::NumberToString<int64_t, kMaxSize>((int64_t)mValue); -} - -std::string NumericValue::GetRoundedString() const -{ - constexpr auto kMaxSize = std::numeric_limits<int64_t>::digits10; - return ::NumberToString<int64_t, kMaxSize>((int64_t)std::round(mValue)); -} - -std::string NumericValue::GetString() const -{ - constexpr auto kMaxSize = std::numeric_limits<double>::max_digits10; - return ::NumberToString<double, kMaxSize>(mValue); -} - -int64_t NumericValue::GetInt() const -{ - return static_cast<int64_t>(mValue); -} - -double NumericValue::GetValue() const -{ - return mValue; -} - -void NumericValue::SetValue(double value) -{ - mValue = value; -} - -bool TextValue::IsInstance(const BaseValue* value) -{ - return value->GetKind() == KD_Text; -} - -TextValue::TextValue() - : BaseValue(BaseValue::KD_Text) -{ -} - -const std::string& TextValue::GetValue() const -{ - return mValue; -} - -void TextValue::SetValue(const std::string& value) -{ - mValue = value; -} - -bool DateTimeValue::IsInstance(const BaseValue* value) -{ - return value->GetKind() == KD_DateTime; -} - -DateTimeValue::DateTimeValue() - : BaseValue(BaseValue::KD_DateTime) -{ -} - -std::string DateTimeValue::GetString() const -{ - namespace chrono = std::chrono; - auto t = chrono::system_clock::to_time_t(mValue); - - char data[32]; - std::strftime(data, sizeof(data), "%Y-%m-%d %H:%M:%S", std::localtime(&t)); - - return std::string(data); -} - -const std::chrono::time_point<std::chrono::system_clock>& DateTimeValue::GetValue() const -{ - return mValue; -} - -void DateTimeValue::SetValue(const std::chrono::time_point<std::chrono::system_clock>& value) -{ - mValue = value; -} |