diff options
Diffstat (limited to 'mmss/queue.hpp')
-rw-r--r-- | mmss/queue.hpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/mmss/queue.hpp b/mmss/queue.hpp index 8efaa97..92c2199 100644 --- a/mmss/queue.hpp +++ b/mmss/queue.hpp @@ -24,14 +24,14 @@ */ -#ifndef _GMRF_MMSS_QUEUE_HPP_ -#define _GMRF_MMSS_QUEUE_HPP_ +#pragma once -#include "types.hpp" +#include "now.hpp" #include <list> #include <memory> + namespace MMSS { template<typename T> class timeout_queue_t { @@ -42,12 +42,12 @@ template<typename T> class timeout_queue_t { element_t(std::shared_ptr<T> &&data0, uint64_t timeout0) : data(std::move(data0)), timeout(timeout0) {} }; - context_t *mmss; + const now_t *clock; std::list<element_t> queue; public: - timeout_queue_t(context_t *mmss0) : mmss(mmss0) {} + timeout_queue_t(const now_t *clock0) : clock(clock0) {} void put(std::shared_ptr<T> &&data, uint64_t timeout) { auto it = queue.begin(), end = queue.end(); @@ -64,7 +64,7 @@ public: element_t &el = queue.front(); - if (el.timeout > now(mmss)) + if (el.timeout > clock->now()) return std::shared_ptr<T>(); std::shared_ptr<T> ret(std::move(el.data)); @@ -76,7 +76,7 @@ public: if (queue.empty()) return -1; - int diff = queue.front().timeout - now(mmss); + int diff = queue.front().timeout - clock->now(); if (diff < 0) return 0; @@ -86,5 +86,3 @@ public: }; } - -#endif /* _GMRF_MMSS_QUEUE_HPP_ */ |