6 #pragma warning( push )
7 #pragma warning( disable : 4251 )
13 namespace LicenseSpring
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 ...
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
void setPrereleaseType(PrereleaseType type)
bool hasRevisionVersion() const
static Version InvalidVersion
const std::string & prereleaseVersion() const
static MSVersion InvalidVersion
bool hasBuildVersion() const
LS_API std::ostream & operator<<(std::ostream &out, const VersionBase &version)
const std::string & buildMetadata() const
PrereleaseType prereleaseType() const
#define LS_API
Macros that expands to dllexport, dllimport or nothing on non Windows platforms or in case of static ...
Base class for handling app versions. Contains common functionality for version classes hierarchy...
bool hasBuildVersion() const
int revisionVersion() const