7#pragma warning(disable : 4251)
22 static constexpr int INVALID_VERSION_NUMBER = -1;
39 operator std::string()
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 =
'.');
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 =
'.');
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 =
'.');
173 std::string m_prerelease;
174 std::string m_buildMetadata;
Simple class for handling app versions in Microsoft specific file and assembly version format....
size_t length() const override
MSVersion(int major, int minor, char delimeter='.')
int revisionVersion() const
static MSVersion fromString(const std::string &input, char delimeter='.')
bool hasRevisionVersion() const
bool hasBuildVersion() const
std::string toString() const override
MSVersion(int major, int minor, int build, char delimeter='.')
MSVersion(const std::string &version, char delimeter='.')
void setBuildVersion(int number)
void setRevisionVersion(int number)
int compare(const VersionBase &baseVer) const override
MSVersion(int major, int minor, int build, int revision, char delimeter='.')
static MSVersion InvalidVersion
Base class for handling app versions. Contains common functionality for version classes hierarchy.
bool operator==(const VersionBase &version) const
virtual size_t length() const
virtual int compare(const VersionBase &version) const
bool operator<=(const VersionBase &version) const
static int compare(const VersionBase &left, const VersionBase &right)
bool operator>(const VersionBase &version) const
VersionBase(int major, int minor, char delimeter='.')
void setDelimeter(char delimeter)
bool operator<(const VersionBase &version) const
bool operator>=(const VersionBase &version) const
virtual std::string toString() const
bool operator!=(const VersionBase &version) const
virtual ~VersionBase()=default
Extended class for handling app versions, compliant with Semantic Versioning 2.0.0 Format: Major....
VersionEx(const std::string &version, char delimeter='.')
std::string toString() const override
VersionEx(int major, int minor, int patch, char delimeter='.')
PrereleaseType prereleaseType() const
void setBuildMetadata(const std::string &data)
void setPrereleaseVersion(const std::string &version)
int compare(const VersionBase &baseVer) const override
bool isPrerelease() const
const std::string & buildMetadata() const
const std::string & prereleaseVersion() const
static VersionEx fromString(const std::string &input, char delimeter='.')
VersionEx(int major, int minor, int patch, int build, char delimeter='.')
void setPrereleaseType(PrereleaseType type)
Simple class for handling app versions. Format: Major.Minor.Patch.Build, where all parts are integer ...
bool hasPatchVersion() const
static Version fromString(const std::string &input, char delimeter='.')
void setPatchVersion(int number)
size_t length() const override
Version(const std::string &version, char delimeter='.')
Version(int major, int minor, char delimeter='.')
int compare(const VersionBase &baseVer) const override
bool hasBuildVersion() const
std::string toString() const override
void setBuildVersion(int number)
static Version InvalidVersion
Version(int major, int minor, int patch, char delimeter='.')
Version(int major, int minor, int patch, int build, char delimeter='.')
constexpr Char encrypt_character(const Char character, int index)
LS_API std::ostream & operator<<(std::ostream &out, const VersionBase &version)