summaryrefslogtreecommitdiffstats
path: root/mmss/queue.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'mmss/queue.hpp')
-rw-r--r--mmss/queue.hpp16
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_ */