From 34cd75f77d0ca94dbdba4e6cc9451fe4d33e78b3 Mon Sep 17 00:00:00 2001 From: lichao <lichao@aiotlink.com> Date: 星期三, 19 五月 2021 19:14:13 +0800 Subject: [PATCH] add api BHQueryProcs. --- src/bh_util.h | 15 +++++---------- 1 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/bh_util.h b/src/bh_util.h index c419a59..15ffeb0 100644 --- a/src/bh_util.h +++ b/src/bh_util.h @@ -18,6 +18,7 @@ #ifndef BH_UTIL_SOXWOK67 #define BH_UTIL_SOXWOK67 +#include "macro.h" #include <functional> #include <mutex> #include <stdint.h> @@ -91,6 +92,8 @@ inline void PutInt(void *p, uint32_t u) { Put32(p, u); } inline void PutInt(void *p, uint64_t u) { Put64(p, u); } +constexpr uint64_t MaskBits(int nbits) { return (uint64_t(1) << nbits) - 1; } + class ExitCall { typedef std::function<void(void)> func_t; @@ -154,9 +157,9 @@ } protected: - static inline T &GetData() + static inline T &GetData(const std::string &msg = "Must set data before use!") { - if (!ptr()) { throw std::string("Must set ShmMsg shm before use!"); } + if (!ptr()) { throw std::logic_error(msg); } return *ptr(); } @@ -167,13 +170,5 @@ return ptr() ? false : Bind(); } }; - -// macro helper -#define JOIN_IMPL(a, b) a##b -#define JOIN(a, b) JOIN_IMPL(a, b) -// defer function / lambda. -#define DEFERF(func) ExitCall JOIN(defer_, __LINE__)(func) -// defer simple expression -#define DEFER1(expr) DEFERF([&]() { expr; }) #endif /* end of include guard: BH_UTIL_SOXWOK67 */ -- Gitblit v1.8.0