From ea2ee85202f7b16d7b713bc7a7dcd1fa63bc6213 Mon Sep 17 00:00:00 2001
From: lichao <lichao@aiotlink.com>
Date: 星期五, 26 三月 2021 11:54:50 +0800
Subject: [PATCH] change refcount to AddRef,Release interface.

---
 src/shm_queue.h |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/src/shm_queue.h b/src/shm_queue.h
index 023b2d1..14f43c0 100644
--- a/src/shm_queue.h
+++ b/src/shm_queue.h
@@ -53,9 +53,11 @@
     using Super::size;
     using Super::capacity;
     const MQId &Id() const { return id_; }
-    bool Write(const D &buf, const int timeout_ms) {
+    template <class OnWrite>
+    bool Write(const D &buf, const int timeout_ms, const OnWrite &onWrite) {
         Guard lock(mutex());
         if (cond_write_.timed_wait(lock, MSFromNow(timeout_ms), [&]() { return !this->full(); })) {
+            onWrite();
             this->push_back(buf);
             cond_read_.notify_one();
             return true;
@@ -63,6 +65,7 @@
             return false;
         }
     }
+    bool Write(const D &buf, const int timeout_ms) { return Write(buf, timeout_ms, [](){}); }
 
     bool Read(D &buf, const int timeout_ms){
         Guard lock(mutex());
@@ -92,6 +95,7 @@
     bool Recv(MQId &source_id, void *&data, size_t &size, const int timeout_ms);
     const MQId &Id() const { return data()->Id(); }
     bool Send(const MQId &remote_id, const Msg &msg, const int timeout_ms);
+    bool Recv(Msg &msg, const int timeout_ms) { return Read(msg, timeout_ms); }
 };
 
 } // namespace bhome_shm

--
Gitblit v1.8.0