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 =
'.' );
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 =
'.' );
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;
180#pragma warning( pop )
#define LS_API
Macros that expands to dllexport, dllimport or nothing on non Windows platforms or in case of static ...
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)