5 #include "../OdbFile.h"
7 #include "../../IProtoBuffable.h"
8 #include "../../ProtoBuf/miscinfofile.pb.h"
9 #include "../IStreamSaveable.h"
11 #include "../../odbdesign_export.h"
15 namespace Odb::Lib::FileModel::Design
24 std::string GetProductModelName()
const;
25 std::string GetJobName()
const;
26 std::string GetOdbVersionMajor()
const;
27 std::string GetOdbVersionMinor()
const;
28 std::string GetOdbSource()
const;
29 std::chrono::system_clock::time_point GetCreationDate()
const;
30 std::chrono::system_clock::time_point GetSaveDate()
const;
31 std::string GetSaveApp()
const;
32 std::string GetSaveUser()
const;
33 std::string GetUnits()
const;
34 unsigned int GetMaxUniqueId()
const;
36 bool Parse(std::filesystem::path path)
override;
37 bool Save(std::ostream& os)
override;
40 std::unique_ptr<Odb::Lib::Protobuf::MiscInfoFile> to_protobuf()
const override;
41 void from_protobuf(
const Odb::Lib::Protobuf::MiscInfoFile& message)
override;
44 std::string m_productModelName;
45 std::string m_jobName;
46 std::string m_odbVersionMajor;
47 std::string m_odbVersionMinor;
48 std::string m_odbSource;
49 std::chrono::system_clock::time_point m_creationDateDate;
50 std::chrono::system_clock::time_point m_saveDate;
51 std::string m_saveApp;
52 std::string m_saveUser;
54 unsigned int m_maxUniqueId;
56 static inline bool attributeValueIsOptional(
const std::string& attribute);
58 constexpr
inline static const char* OPTIONAL_ATTRIBUTES[] =
64 constexpr
inline static const char* PRODUCT_MODEL_NAME_KEY =
"PRODUCT_MODEL_NAME";
65 constexpr
inline static const char* JOB_NAME_KEY =
"JOB_NAME";
66 constexpr
inline static const char* ODB_VERSION_MAJOR_KEY =
"ODB_VERSION_MAJOR";
67 constexpr
inline static const char* ODB_VERSION_MINOR_KEY =
"ODB_VERSION_MINOR";
68 constexpr
inline static const char* ODB_SOURCE_KEY =
"ODB_SOURCE";
69 constexpr
inline static const char* CREATION_DATE_KEY =
"CREATION_DATE";
70 constexpr
inline static const char* SAVE_DATE_KEY =
"SAVE_DATE";
71 constexpr
inline static const char* SAVE_APP_KEY =
"SAVE_APP";
72 constexpr
inline static const char* SAVE_USER_KEY =
"SAVE_USER";
73 constexpr
inline static const char* UNITS_KEY =
"UNITS";
74 constexpr
inline static const char* MAX_UID_KEY =
"MAX_UID";