[prev in list] [next in list] [prev in thread] [next in thread]
List: mesos-commits
Subject: mesos git commit: Convert Non-POD static variables in fq_codel and ingress to constexpr.
From: vinodkone () apache ! org
Date: 2015-05-29 21:21:59
Message-ID: 9d2f58ddcc6f47448d7e2833864cb1e8 () git ! apache ! org
[Download RAW message or body]
Repository: mesos
Updated Branches:
refs/heads/master 34543c768 -> d7c0873e7
Convert Non-POD static variables in fq_codel and ingress to constexpr.
Review: https://reviews.apache.org/r/34782
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/d7c0873e
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/d7c0873e
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/d7c0873e
Branch: refs/heads/master
Commit: d7c0873e726eec41fff3dbc95cce0bdce112ffc5
Parents: 34543c7
Author: Paul Brett <paul_b@twopensource.com>
Authored: Fri May 29 14:21:38 2015 -0700
Committer: Vinod Kone <vinodkone@gmail.com>
Committed: Fri May 29 14:21:38 2015 -0700
----------------------------------------------------------------------
src/linux/routing/handle.hpp | 24 ++++++++++--------------
src/linux/routing/queueing/fq_codel.cpp | 6 ------
src/linux/routing/queueing/fq_codel.hpp | 8 ++++++--
src/linux/routing/queueing/ingress.cpp | 3 ---
src/linux/routing/queueing/ingress.hpp | 4 ++--
5 files changed, 18 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/d7c0873e/src/linux/routing/handle.hpp
----------------------------------------------------------------------
diff --git a/src/linux/routing/handle.hpp b/src/linux/routing/handle.hpp
index 8f2da06..4ce1588 100644
--- a/src/linux/routing/handle.hpp
+++ b/src/linux/routing/handle.hpp
@@ -36,34 +36,30 @@ namespace routing {
class Handle
{
public:
- explicit Handle(uint32_t _handle) : handle(_handle) {}
+ explicit constexpr Handle(uint32_t _handle) : handle(_handle) {}
- Handle(uint16_t primary, uint16_t secondary)
- {
- handle = (((uint32_t)primary) << 16) + secondary;
- }
+ constexpr Handle(uint16_t primary, uint16_t secondary) :
+ handle((((uint32_t)primary) << 16) + secondary) {}
// NOTE: This is used to construct a classid. The higher 16 bits of
// the given 'parent' will be the primary and the lower 16 bits is
// specified by the given 'id'.
- Handle(Handle parent, uint16_t id)
- {
- handle = (((uint32_t)parent.primary()) << 16) + id;
- }
+ constexpr Handle(const Handle& parent, uint16_t id) :
+ handle((((uint32_t)parent.primary()) << 16) + id) {}
- bool operator==(const Handle& that) const
+ constexpr bool operator==(const Handle& that) const
{
return handle == that.handle;
}
- bool operator!=(const Handle& that) const
+ constexpr bool operator!=(const Handle& that) const
{
return handle != that.handle;
}
- uint16_t primary() const { return handle >> 16; }
- uint16_t secondary() const { return handle & 0x0000ffff; }
- uint32_t get() const { return handle; }
+ constexpr uint16_t primary() const { return handle >> 16; }
+ constexpr uint16_t secondary() const { return handle & 0x0000ffff; }
+ constexpr uint32_t get() const { return handle; }
protected:
uint32_t handle;
http://git-wip-us.apache.org/repos/asf/mesos/blob/d7c0873e/src/linux/routing/queueing/fq_codel.cpp
----------------------------------------------------------------------
diff --git a/src/linux/routing/queueing/fq_codel.cpp b/src/linux/routing/queueing/fq_codel.cpp
index f9db58b..64b5c73 100644
--- a/src/linux/routing/queueing/fq_codel.cpp
+++ b/src/linux/routing/queueing/fq_codel.cpp
@@ -111,12 +111,6 @@ Result<fq_codel::Discipline> decode<fq_codel::Discipline>(
namespace fq_codel {
-// NOTE: Root queueing discipline handle has to be X:0, so handle's
-// secondary number has to be 0 here. There can be only one root
-// queueing discipline on the egress side of a link.
-const Handle HANDLE = Handle(0x1, 0);
-
-
const int DEFAULT_FLOWS = 1024;
http://git-wip-us.apache.org/repos/asf/mesos/blob/d7c0873e/src/linux/routing/queueing/fq_codel.hpp
----------------------------------------------------------------------
diff --git a/src/linux/routing/queueing/fq_codel.hpp b/src/linux/routing/queueing/fq_codel.hpp
index 0248616..7de1e31 100644
--- a/src/linux/routing/queueing/fq_codel.hpp
+++ b/src/linux/routing/queueing/fq_codel.hpp
@@ -29,8 +29,12 @@ namespace routing {
namespace queueing {
namespace fq_codel {
-// The handle of the fq_codel queueing discipline is fixed.
-extern const Handle HANDLE;
+// NOTE: Root queueing discipline handle has to be X:0, so handle's
+// secondary number has to be 0 here. There can be only one root
+// queueing discipline on the egress side of a link and fq_codel is
+// classless and hence there is only one instance of fq_codel per
+// link. This allows us to fix the fq_codel handle.
+constexpr Handle HANDLE(1, 0);
// The default number of flows for the fq_codel queueing discipline.
http://git-wip-us.apache.org/repos/asf/mesos/blob/d7c0873e/src/linux/routing/queueing/ingress.cpp
----------------------------------------------------------------------
diff --git a/src/linux/routing/queueing/ingress.cpp b/src/linux/routing/queueing/ingress.cpp
index fece104..ae0c38d 100644
--- a/src/linux/routing/queueing/ingress.cpp
+++ b/src/linux/routing/queueing/ingress.cpp
@@ -38,9 +38,6 @@ namespace queueing {
namespace ingress {
-const Handle ROOT = Handle(TC_H_INGRESS);
-const Handle HANDLE = Handle(0xffff, 0);
-
// The ingress queueing discipline is not exposed to the user.
struct Discipline
{
http://git-wip-us.apache.org/repos/asf/mesos/blob/d7c0873e/src/linux/routing/queueing/ingress.hpp
----------------------------------------------------------------------
diff --git a/src/linux/routing/queueing/ingress.hpp b/src/linux/routing/queueing/ingress.hpp
index 4c96b60..84506fe 100644
--- a/src/linux/routing/queueing/ingress.hpp
+++ b/src/linux/routing/queueing/ingress.hpp
@@ -48,8 +48,8 @@ namespace ingress {
// for the interface which specify the root handle under which a
// queueing discipline can be created, and the handle of any created
// ingress filter.
-extern const Handle ROOT;
-extern const Handle HANDLE;
+constexpr Handle ROOT(Handle(TC_H_INGRESS));
+constexpr Handle HANDLE(Handle(0xffff, 0));
// Returns true if there exists an ingress qdisc on the link.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic