From 491d98b3ba32cafed5682552bd870ca0ef93275c Mon Sep 17 00:00:00 2001
From: lichao <lichao@aiotlink.com>
Date: 星期二, 30 三月 2021 18:29:09 +0800
Subject: [PATCH] add ShmSocket as shm interface, add sub/pub.

---
 src/shm.h |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/src/shm.h b/src/shm.h
index 5e2c8b9..0f68754 100644
--- a/src/shm.h
+++ b/src/shm.h
@@ -61,6 +61,7 @@
     template <class T, class ...Params> T * New(Params const&...params) { return construct<T>(anonymous_instance, std::nothrow)(params...); }
     template <class T> void Delete(T *p) { if (p) { destroy_ptr<T>(p); }; }
     template <class T> void Delete(offset_ptr<T> p) { Delete(p.get()); }
+    template <class T> T *Find(const std::string &name) { return find<T>(name.c_str()).first; }
 
 };
 
@@ -91,7 +92,8 @@
             throw("Error: Not enough memory, can not allocate \"" + name_ + "\"");
         }
     }
-    Data *find(const std::string &name) { return shm_.find<Data>(ObjName(name).c_str()).first; }
+    static Data *Find(SharedMemory &shm, const std::string &name) { return shm.Find<Data>(ObjName(name)); }
+    Data *Find(const std::string &name) { return Find(shm_, ObjName(name)); }
     virtual ~ShmObject() {}
     std::string name() const { return name_; }
     Data* data() { return pdata_; }

--
Gitblit v1.8.0