WSF
TimePoint.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2019 Infoscitex, a DCS Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef TIMEPOINT_HPP
13#define TIMEPOINT_HPP
14
15#include "usmtf_export.h"
16
17#include <string>
18
19#include "FFIRN_Validator.hpp"
20
21namespace usmtf
22{
26
31class USMTF_EXPORT TimePoint : public FFIRN_Validator
32{
33public:
34 TimePoint(bool aTimeQualifersAllowed = false) noexcept;
35 bool ParseAndValidate(const Field& aField) override;
36 const std::string& GetDay() const noexcept;
37 const std::string& GetMonth() const noexcept;
38 const std::string& GetYear() const noexcept;
39 const std::string& GetTimeZone() const noexcept;
40 const std::string& GetMinute() const noexcept;
41 const std::string& GetHour() const noexcept;
42 // Probably the only one that needs explanations, the stop
43 // time qualifier is a reference string for things like
44 // Until further Notice or To Be Determined
45 const std::string& GetStopTimeQualifier() const noexcept;
46
47protected:
48 bool IsValidStopTimeQualifier() noexcept;
49 bool IsValidDateTimeGroup() noexcept;
50 bool IsValidDayTimeMonth() noexcept;
51 bool IsValidDayTime() noexcept;
52 bool IsValidDay(const std::string& aDay) noexcept;
53 bool IsValidHour(const std::string& aHour) noexcept;
54 bool IsValidMinuteOrSecond(const std::string& aUnit) noexcept;
55 bool IsValidTimeZone(const std::string& aTimeZone) noexcept;
56 bool IsValidMonthName(const std::string& aMonth) noexcept;
57 bool IsValidYear(const std::string& aYear) noexcept;
58 bool ValidateDayTime(const std::string& aDayTime) noexcept; // Support two uses, Cant override signatures because one
59 // is used in bind.
61 std::string mStopTimeQualifier;
62 std::string mDay;
63 std::string mHour;
64 std::string mMinute;
65 std::string mTimeZone;
66 std::string mMonth;
67 std::string mYear;
68};
69} // namespace usmtf
70#endif
Definition Field.hpp:48
bool IsValidDayTimeMonth() noexcept
Definition TimePoint.cpp:148
std::string mMinute
Definition TimePoint.hpp:64
const std::string & GetMinute() const noexcept
Definition TimePoint.cpp:60
bool IsValidMinuteOrSecond(const std::string &aUnit) noexcept
Definition TimePoint.cpp:243
const std::string & GetDay() const noexcept
Definition TimePoint.cpp:40
bool IsValidDay(const std::string &aDay) noexcept
Definition TimePoint.cpp:200
bool IsValidMonthName(const std::string &aMonth) noexcept
Definition TimePoint.cpp:282
TimePoint(bool aTimeQualifersAllowed=false) noexcept
Definition TimePoint.cpp:18
bool IsValidHour(const std::string &aHour) noexcept
Definition TimePoint.cpp:219
const std::string & GetStopTimeQualifier() const noexcept
Definition TimePoint.cpp:70
std::string mMonth
Definition TimePoint.hpp:66
const std::string & GetHour() const noexcept
Definition TimePoint.cpp:65
bool IsValidDateTimeGroup() noexcept
Definition TimePoint.cpp:95
bool IsValidYear(const std::string &aYear) noexcept
Definition TimePoint.cpp:298
std::string mStopTimeQualifier
Definition TimePoint.hpp:61
std::string mDay
Definition TimePoint.hpp:62
const std::string & GetMonth() const noexcept
Definition TimePoint.cpp:45
bool ParseAndValidate(const Field &aField) override
Definition TimePoint.cpp:23
bool IsValidStopTimeQualifier() noexcept
Definition TimePoint.cpp:75
const std::string & GetYear() const noexcept
Definition TimePoint.cpp:50
bool ValidateDayTime(const std::string &aDayTime) noexcept
Definition TimePoint.cpp:317
bool IsValidTimeZone(const std::string &aTimeZone) noexcept
Definition TimePoint.cpp:261
const std::string & GetTimeZone() const noexcept
Definition TimePoint.cpp:55
bool IsValidDayTime() noexcept
Definition TimePoint.cpp:194
std::string mYear
Definition TimePoint.hpp:67
bool mTimeQualifersAllowed
Definition TimePoint.hpp:60
std::string mTimeZone
Definition TimePoint.hpp:65
std::string mHour
Definition TimePoint.hpp:63
Definition Acmid.cpp:17
Copyrights Multiple, All Rights Reserved