parts_.push_back(value);
}
- for (int i = 3 - parts_.size(); i > 0; i--)
- parts_.push_back(0);
}
bool VersionNumber::IsValid() const {
}
int VersionNumber::Compare(const VersionNumber& other) const {
+ std::vector<int> lhs_version = parts_;
+ std::vector<int> rhs_version = other.parts_;
+ lhs_version.resize(3);
+ rhs_version.resize(3);
size_t i = 0;
+
while (true) {
- if (i < parts_.size()) {
- if (i < other.parts_.size()) {
- if (parts_[i] > other.parts_[i]) {
+ if (i < lhs_version.size()) {
+ if (i < rhs_version.size()) {
+ if (lhs_version[i] > rhs_version[i]) {
return 1;
- } else if (parts_[i] < other.parts_[i]) {
+ } else if (lhs_version[i] < rhs_version[i]) {
return -1;
}
} else {
return 1;
}
} else {
- if (i < other.parts_.size()) {
+ if (i < rhs_version.size()) {
return -1;
} else {
return 0;
}
}
-VersionNumber& VersionNumber::Trim(unsigned size) {
- parts_.resize(size);
- return *this;
-}
-
bool VersionNumber::operator<(const VersionNumber& other) const {
return Compare(other) < 0;
}
bool IsValid() const;
int Compare(const VersionNumber& other) const;
- VersionNumber& Trim(unsigned size);
bool operator<(const VersionNumber& other) const;
bool operator>=(const VersionNumber& other) const;
* 0 <= b <= 255
* 0 <= c <= 65535
*
- * b and c part are optional but code will consider as 0 if doesn't exists
+ * b and c part are optional
*
* @return true if version is ok
*/