Commit f9f35653 authored by Dominik Charousset's avatar Dominik Charousset

Add is_infinite function

parent 9a0cbf21
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include <tuple> #include <tuple>
#include "caf/broadcast_downstream_manager.hpp" #include "caf/broadcast_downstream_manager.hpp"
#include "caf/check_typed_input.hpp"
#include "caf/default_downstream_manager.hpp" #include "caf/default_downstream_manager.hpp"
#include "caf/detail/stream_source_driver_impl.hpp" #include "caf/detail/stream_source_driver_impl.hpp"
#include "caf/detail/stream_source_impl.hpp" #include "caf/detail/stream_source_impl.hpp"
......
...@@ -137,6 +137,12 @@ inline bool operator!=(const duration& lhs, const duration& rhs) { ...@@ -137,6 +137,12 @@ inline bool operator!=(const duration& lhs, const duration& rhs) {
return !(lhs == rhs); return !(lhs == rhs);
} }
/// @relates duration
template <class T>
inline bool is_infinite(duration x) {
return !x.valid();
}
/// @relates duration /// @relates duration
template <class Clock, class Duration> template <class Clock, class Duration>
std::chrono::time_point<Clock, Duration>& std::chrono::time_point<Clock, Duration>&
......
...@@ -36,4 +36,15 @@ struct infinite_t { ...@@ -36,4 +36,15 @@ struct infinite_t {
/// Constant for passing "no timeout" to functions such as `request`. /// Constant for passing "no timeout" to functions such as `request`.
static constexpr infinite_t infinite = infinite_t{}; static constexpr infinite_t infinite = infinite_t{};
// -- forward compatibility with CAF 0.18 --------------------------------------
constexpr bool is_infinite(infinite_t) {
return true;
}
template <class Rep, class Period>
constexpr bool is_infinite(std::chrono::duration<Rep, Period>) {
return false;
}
} // namespace caf } // namespace caf
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment