You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2015/07/10 00:14:29 UTC

mesos git commit: Exposed major, minor and patch components in stout Version.

Repository: mesos
Updated Branches:
  refs/heads/master 68b8595f0 -> 3c7933dfe


Exposed major, minor and patch components in stout Version.

Note: The names major and minor are not available when compiling
with GCC because it pulls in the sysmacros.h header implicitly
which define these for makedev.

Review: https://reviews.apache.org/r/36336


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/3c7933df
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/3c7933df
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/3c7933df

Branch: refs/heads/master
Commit: 3c7933dfe8ff73c4b80a8f2086d0529d69f3051f
Parents: 68b8595
Author: Paul Brett <pa...@twopensource.com>
Authored: Thu Jul 9 15:07:59 2015 -0700
Committer: Benjamin Mahler <be...@gmail.com>
Committed: Thu Jul 9 15:14:21 2015 -0700

----------------------------------------------------------------------
 .../3rdparty/stout/include/stout/version.hpp    | 54 +++++++++++---------
 1 file changed, 30 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/3c7933df/3rdparty/libprocess/3rdparty/stout/include/stout/version.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/3rdparty/stout/include/stout/version.hpp b/3rdparty/libprocess/3rdparty/stout/include/stout/version.hpp
index 8692323..22d30eb 100644
--- a/3rdparty/libprocess/3rdparty/stout/include/stout/version.hpp
+++ b/3rdparty/libprocess/3rdparty/stout/include/stout/version.hpp
@@ -25,13 +25,18 @@
 #include <stout/try.hpp>
 
 // This class provides convenience routines for version checks.
-// TODO(karya): Consider adding support for more than 3 components,
-// and compatibility operators.
+//
+// Ideally, the components would be called simply major, minor and
+// patch. However, GNU libstdc++ already defines these as macros for
+// compatibility reasons (man 3 makedev for more information) implicitly
+// included in every compilation.
+//
+// TODO(karya): Consider adding support for more than 3 components, and
+// compatibility operators.
 // TODO(karya): Add support for labels and build metadata. Consider
 // semantic versioning (http://semvar.org/) for specs.
-class Version
+struct Version
 {
-public:
   // Expect the string in the following format:
   //   <major>[.<minor>[.<patch>]]
   // Missing components are treated as zero.
@@ -66,14 +71,16 @@ public:
     return Version(components[0], components[1], components[2]);
   }
 
-  Version(int major, int minor, int patch)
-    : major_(major), minor_(minor), patch_(patch) {}
+  Version(int _majorVersion, int _minorVersion, int _patchVersion)
+    : majorVersion(_majorVersion),
+      minorVersion(_minorVersion),
+      patchVersion(_patchVersion) {}
 
   bool operator == (const Version &other) const
   {
-    return major_ == other.major_ &&
-      minor_ == other.minor_ &&
-      patch_ == other.patch_;
+    return majorVersion == other.majorVersion &&
+      minorVersion == other.minorVersion &&
+      patchVersion == other.patchVersion;
   }
 
   bool operator != (const Version &other) const
@@ -84,24 +91,24 @@ public:
   bool operator < (const Version &other) const
   {
     // Lexicographic ordering.
-    if (major_ != other.major_) {
-      return major_ < other.major_;
-    } else if (minor_ != other.minor_) {
-      return minor_ < other.minor_;
+    if (majorVersion != other.majorVersion) {
+      return majorVersion < other.majorVersion;
+    } else if (minorVersion != other.minorVersion) {
+      return minorVersion < other.minorVersion;
     } else {
-      return patch_ < other.patch_;
+      return patchVersion < other.patchVersion;
     }
   }
 
   bool operator > (const Version &other) const
   {
     // Lexicographic ordering.
-    if (major_ != other.major_) {
-      return major_ > other.major_;
-    } else if (minor_ != other.minor_) {
-      return minor_ > other.minor_;
+    if (majorVersion != other.majorVersion) {
+      return majorVersion > other.majorVersion;
+    } else if (minorVersion != other.minorVersion) {
+      return minorVersion > other.minorVersion;
     } else {
-      return patch_ > other.patch_;
+      return patchVersion > other.patchVersion;
     }
   }
 
@@ -117,16 +124,15 @@ public:
 
   friend inline std::ostream& operator << (std::ostream& s, const Version& v);
 
-private:
-  const int major_;
-  const int minor_;
-  const int patch_;
+  const int majorVersion;
+  const int minorVersion;
+  const int patchVersion;
 };
 
 
 inline std::ostream& operator << (std::ostream& s, const Version& v)
 {
-  return s << v.major_ << "." << v.minor_ << "." << v.patch_;
+  return s << v.majorVersion << "." << v.minorVersion << "." << v.patchVersion;
 }
 
 #endif // __STOUT_VERSION_HPP__