Fix CLANG compilation: folly/TokenBucket.h
[folly.git] / folly / TokenBucket.h
index 7ddf8fc23345359764f2a60dc98a84380fb3a8ed..ce6a0551c71f2bc468d98f4f7590418cad2db3dd 100644 (file)
@@ -104,6 +104,15 @@ class ParameterizedDynamicTokenBucket {
     zeroTime_ = zeroTime;
   }
 
+  /**
+   * Returns the current time in seconds since Epoch.
+   */
+  static double defaultClockNow() noexcept(noexcept(ClockT::timeSinceEpoch())) {
+    return std::chrono::duration_cast<std::chrono::duration<double>>(
+               ClockT::timeSinceEpoch())
+        .count();
+  }
+
   /**
    * Attempts to consume some number of tokens. Tokens are first added to the
    * bucket based on the time elapsed since the last attempt to consume tokens.
@@ -191,15 +200,6 @@ class ParameterizedDynamicTokenBucket {
     return std::min((nowInSeconds - this->zeroTime_) * rate, burstSize);
   }
 
-  /**
-   * Returns the current time in seconds since Epoch.
-   */
-  static double defaultClockNow() noexcept(noexcept(ClockT::timeSinceEpoch())) {
-    return std::chrono::duration_cast<std::chrono::duration<double>>(
-               ClockT::timeSinceEpoch())
-        .count();
-  }
-
  private:
   template <typename TCallback>
   bool consumeImpl(
@@ -268,6 +268,13 @@ class ParameterizedTokenBucket {
   ParameterizedTokenBucket& operator=(
       const ParameterizedTokenBucket& other) noexcept = default;
 
+  /**
+   * Returns the current time in seconds since Epoch.
+   */
+  static double defaultClockNow() noexcept(noexcept(Impl::defaultClockNow())) {
+    return Impl::defaultClockNow();
+  }
+
   /**
    * Change rate and burst size.
    *
@@ -370,13 +377,6 @@ class ParameterizedTokenBucket {
     return burstSize_;
   }
 
-  /**
-   * Returns the current time in seconds since Epoch.
-   */
-  static double defaultClockNow() noexcept(noexcept(Impl::defaultClockNow())) {
-    return Impl::defaultClockNow();
-  }
-
  private:
   Impl tokenBucket_;
   double rate_;