22 #ifndef ELM_UTIL_VERSION_H
23 #define ELM_UTIL_VERSION_H
25 #include <elm/assert.h>
39 inline Version(
const string& text) { *
this = text; }
45 inline int major(
void)
const;
46 inline int minor(
void)
const;
52 inline operator bool(
void)
const;
66 unsigned short _release;
69 io::Output&
operator<<(io::Output&
out,
const Version& version);
73 : _major(major), _minor(minor), _release(release) {
74 ASSERTP(major >= 0,
"major number must be positive");
75 ASSERTP(minor >= 0,
"minor number must be positive");
76 ASSERTP(release >= 0,
"release number be positive");
80 : _major(version._major), _minor(version._minor), _release(version._release) {
84 return Version(_major, _minor, _release + 1);
88 return Version(_major, _minor + 1, 0);
92 return Version(_major + 1, 0, 0);
108 return _major != version._major || _minor <= version._minor;
112 int res = _major - version._major;
114 res = _minor - version._minor;
118 inline Version::operator bool(
void)
const {
119 return _major || _minor || _release;
123 _major = version._major;
124 _minor = version._minor;
125 _release = version._release;
155 #endif // ELM_UTIL_VERSION_H
bool operator!=(const Version &version) const
Definition: Version.h:133
Version(const cstring text)
Definition: Version.h:38
Version & operator=(const cstring text)
Definition: Version.h:55
int compare(const Version &version) const
Definition: Version.h:111
Version nextRelease(void) const
Definition: Version.h:83
int minor(void) const
Definition: Version.h:99
int release(void) const
Definition: Version.h:103
bool operator==(const Version &version) const
Definition: Version.h:129
Version nextMinor(void) const
Definition: Version.h:87
Version(int major=0, int minor=0, int release=0)
Definition: Version.h:72
bool accepts(const Version &version) const
Definition: Version.h:107
static const Version ZERO
Definition: Version.h:32
String string
Definition: String.h:123
Version nextMajor(void) const
Definition: Version.h:91
int major(void) const
Definition: Version.h:95
Version & operator=(const char *text)
Definition: Version.h:54
Version(const string &text)
Definition: Version.h:39
sys::SystemOutStream & out
Definition: system_SystemIO.cpp:101
Version(const char *text)
Definition: Version.h:37
AutoString & operator<<(CString str, const T &value)
Definition: AutoString.h:90
Version & operator=(const Version &version)
Definition: Version.h:122
bool operator<(const Version &version) const
Definition: Version.h:145
bool operator>=(const Version &version) const
Definition: Version.h:141
bool operator<=(const Version &version) const
Definition: Version.h:149
bool operator>(const Version &version) const
Definition: Version.h:137