From 43d4e95770b0519341153202c9a535aaa8e164c5 Mon Sep 17 00:00:00 2001 From: lichao <lichao@aiotlink.com> Date: 星期二, 01 六月 2021 14:22:20 +0800 Subject: [PATCH] refactor, remove useless code. --- src/shm_queue.h | 70 ++--------------------------------- 1 files changed, 4 insertions(+), 66 deletions(-) diff --git a/src/shm_queue.h b/src/shm_queue.h index 3a2cea6..952dae9 100644 --- a/src/shm_queue.h +++ b/src/shm_queue.h @@ -28,82 +28,20 @@ namespace bhome_shm { -template <class D> -using Circular = boost::circular_buffer<D, Allocator<D>>; - -template <class D> -class SharedQueue -{ -public: - SharedQueue(const uint32_t len, Allocator<D> const &alloc) : - queue_(len, alloc) {} - - bool Read(D &d, const int timeout_ms) - { - using namespace std::chrono; - auto end_time = steady_clock::now() + milliseconds(timeout_ms); - do { - if (TryRead(d)) { - return true; - } else { - std::this_thread::sleep_for(1ms); - } - } while (steady_clock::now() < end_time); - return false; - } - bool TryRead(D &d) - { - // bhome_shm::Guard lock(mutex_); - if (!queue_.empty()) { - d = queue_.front(); - queue_.pop_front(); - return true; - } else { - return false; - } - } - bool TryWrite(const D &d) - { - // bhome_shm::Guard lock(mutex_); - if (!queue_.full()) { - queue_.push_back(d); - return true; - } else { - return false; - } - } - -private: - Circular<D> queue_; -}; - -template <int Power = 4> +// just wrap robust::AtomicQ63 class SharedQ63 { public: template <class... T> explicit SharedQ63(T &&...t) {} // easy testing - typedef int64_t Data; - bool Read(Data &d, const int timeout_ms) - { - using namespace std::chrono; - auto end_time = steady_clock::now() + milliseconds(timeout_ms); - do { - for (int i = 0; i < 100; ++i) { - if (TryRead(d)) { - return true; - } - } - std::this_thread::sleep_for(1ms); - } while (steady_clock::now() < end_time); - return false; - } + typedef robust::AtomicQ63 AQ63; + typedef AQ63::Data Data; bool TryRead(Data &d, const bool try_more = true) { return queue_.pop(d, try_more); } bool TryWrite(const Data d, const bool try_more = true) { return queue_.push(d, try_more); } private: - robust::AtomicQueue<Power, Data> queue_; + AQ63 queue_; }; } // namespace bhome_shm -- Gitblit v1.8.0