7 #pragma warning(disable : 4251) 22 static constexpr
int INVALID_VERSION_NUMBER = -1;
25 VersionBase(
int major,
int minor,
char delimeter =
'.');
35 virtual size_t length()
const;
37 virtual std::string toString()
const;
39 operator std::string()
const;
48 virtual int compare(
const VersionBase &version)
const;
70 Version(
int major,
int minor,
char delimeter =
'.');
71 Version(
int major,
int minor,
int patch,
char delimeter =
'.');
72 Version(
int major,
int minor,
int patch,
int build,
char delimeter =
'.');
73 Version(
const std::string &version,
char delimeter =
'.');
79 void setPatchVersion(
int number);
80 void setBuildVersion(
int number);
82 size_t length()
const override;
84 std::string toString()
const override;
86 int compare(
const VersionBase &baseVer)
const override;
88 static Version fromString(
const std::string &input,
char delimeter =
'.');
107 MSVersion(
int major,
int minor,
char delimeter =
'.');
108 MSVersion(
int major,
int minor,
int build,
char delimeter =
'.');
109 MSVersion(
int major,
int minor,
int build,
int revision,
char delimeter =
'.');
110 MSVersion(
const std::string &version,
char delimeter =
'.');
116 void setBuildVersion(
int number);
117 void setRevisionVersion(
int number);
119 size_t length()
const override;
121 std::string toString()
const override;
123 int compare(
const VersionBase &baseVer)
const override;
125 static MSVersion fromString(
const std::string &input,
char delimeter =
'.');
151 VersionEx(
int major,
int minor,
int patch,
char delimeter =
'.');
152 VersionEx(
int major,
int minor,
int patch,
int build,
char delimeter =
'.');
153 VersionEx(
const std::string &version,
char delimeter =
'.');
165 std::string toString()
const override;
167 int compare(
const VersionBase &baseVer)
const override;
169 static VersionEx fromString(
const std::string &input,
char delimeter =
'.');
173 std::string m_prerelease;
174 std::string m_buildMetadata;
183 #endif // LS_CUSTOMER_H Simple class for handling app versions. Format: Major.Minor.Patch.Build, where all parts are integer ...
int revisionVersion() const
void setDelimeter(char delimeter)
void setPrereleaseVersion(const std::string &version)
bool hasPatchVersion() const
Simple class for handling app versions in Microsoft specific file and assembly version format...
Extended class for handling app versions, compliant with Semantic Versioning 2.0.0 Format: Major...
void setBuildMetadata(const std::string &data)
bool isPrerelease() const
const std::string & prereleaseVersion() const
bool hasBuildVersion() const
void setPrereleaseType(PrereleaseType type)
PrereleaseType prereleaseType() const
static Version InvalidVersion
static MSVersion InvalidVersion
bool hasBuildVersion() const
LS_API std::ostream & operator<<(std::ostream &out, const VersionBase &version)
const std::string & buildMetadata() const
Base class for handling app versions. Contains common functionality for version classes hierarchy...
bool hasRevisionVersion() const