6 #pragma warning( push ) 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;
41 bool operator==(
const VersionBase& version )
const;
42 bool operator!=(
const VersionBase& version )
const;
45 bool operator<=(
const VersionBase& version )
const;
46 bool operator>=(
const VersionBase& version )
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;
180 #pragma warning( pop ) 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)
#define LS_API
Macros that expands to dllexport, dllimport or nothing on non Windows platforms or in case of static ...
const std::string & buildMetadata() const
Base class for handling app versions. Contains common functionality for version classes hierarchy...
bool hasRevisionVersion() const