This is an automated email from the ASF dual-hosted git repository. mzhu pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mesos.git
commit 393f39dd8ea49d0d70e2ca562d8e0a2ab88d5238 Author: Meng Zhu <[email protected]> AuthorDate: Tue Mar 12 15:25:25 2019 -0700 Added `>`, `<` and `>=` operators to `Value::Scalar`. Review: https://reviews.apache.org/r/70148 --- include/mesos/v1/values.hpp | 3 +++ include/mesos/values.hpp | 3 +++ src/common/values.cpp | 18 ++++++++++++++++++ src/v1/values.cpp | 18 ++++++++++++++++++ 4 files changed, 42 insertions(+) diff --git a/include/mesos/v1/values.hpp b/include/mesos/v1/values.hpp index 03a19ee..54f7d05 100644 --- a/include/mesos/v1/values.hpp +++ b/include/mesos/v1/values.hpp @@ -28,7 +28,10 @@ namespace v1 { std::ostream& operator<<(std::ostream& stream, const Value::Scalar& scalar); bool operator==(const Value::Scalar& left, const Value::Scalar& right); +bool operator<(const Value::Scalar& left, const Value::Scalar& right); bool operator<=(const Value::Scalar& left, const Value::Scalar& right); +bool operator>(const Value::Scalar& left, const Value::Scalar& right); +bool operator>=(const Value::Scalar& left, const Value::Scalar& right); Value::Scalar operator+(const Value::Scalar& left, const Value::Scalar& right); Value::Scalar operator-(const Value::Scalar& left, const Value::Scalar& right); Value::Scalar& operator+=(Value::Scalar& left, const Value::Scalar& right); diff --git a/include/mesos/values.hpp b/include/mesos/values.hpp index 0d09729..27f71d1 100644 --- a/include/mesos/values.hpp +++ b/include/mesos/values.hpp @@ -27,7 +27,10 @@ namespace mesos { std::ostream& operator<<(std::ostream& stream, const Value::Scalar& scalar); bool operator==(const Value::Scalar& left, const Value::Scalar& right); +bool operator<(const Value::Scalar& left, const Value::Scalar& right); bool operator<=(const Value::Scalar& left, const Value::Scalar& right); +bool operator>(const Value::Scalar& left, const Value::Scalar& right); +bool operator>=(const Value::Scalar& left, const Value::Scalar& right); Value::Scalar operator+(const Value::Scalar& left, const Value::Scalar& right); Value::Scalar operator-(const Value::Scalar& left, const Value::Scalar& right); Value::Scalar& operator+=(Value::Scalar& left, const Value::Scalar& right); diff --git a/src/common/values.cpp b/src/common/values.cpp index c788302..b41c64e 100644 --- a/src/common/values.cpp +++ b/src/common/values.cpp @@ -98,12 +98,30 @@ bool operator==(const Value::Scalar& left, const Value::Scalar& right) } +bool operator<(const Value::Scalar& left, const Value::Scalar& right) +{ + return convertToFixed(left.value()) < convertToFixed(right.value()); +} + + bool operator<=(const Value::Scalar& left, const Value::Scalar& right) { return convertToFixed(left.value()) <= convertToFixed(right.value()); } +bool operator>(const Value::Scalar& left, const Value::Scalar& right) +{ + return convertToFixed(left.value()) > convertToFixed(right.value()); +} + + +bool operator>=(const Value::Scalar& left, const Value::Scalar& right) +{ + return convertToFixed(left.value()) >= convertToFixed(right.value()); +} + + Value::Scalar operator+(const Value::Scalar& left, const Value::Scalar& right) { Value::Scalar result = left; diff --git a/src/v1/values.cpp b/src/v1/values.cpp index 5fd9dc5..4b58919 100644 --- a/src/v1/values.cpp +++ b/src/v1/values.cpp @@ -97,12 +97,30 @@ bool operator==(const Value::Scalar& left, const Value::Scalar& right) } +bool operator<(const Value::Scalar& left, const Value::Scalar& right) +{ + return convertToFixed(left.value()) < convertToFixed(right.value()); +} + + bool operator<=(const Value::Scalar& left, const Value::Scalar& right) { return convertToFixed(left.value()) <= convertToFixed(right.value()); } +bool operator>(const Value::Scalar& left, const Value::Scalar& right) +{ + return convertToFixed(left.value()) > convertToFixed(right.value()); +} + + +bool operator>=(const Value::Scalar& left, const Value::Scalar& right) +{ + return convertToFixed(left.value()) >= convertToFixed(right.value()); +} + + Value::Scalar operator+(const Value::Scalar& left, const Value::Scalar& right) { Value::Scalar result = left;
