From 0221151323846d159fbe9f9a9a6986768c1ce4c7 Mon Sep 17 00:00:00 2001 From: lichao <lichao@aiotlink.com> Date: 星期三, 30 六月 2021 13:10:16 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/valib/bhshmq --- src/bh_util.h | 45 ++++++++++++++++++++------------------------- 1 files changed, 20 insertions(+), 25 deletions(-) diff --git a/src/bh_util.h b/src/bh_util.h index bc48578..1b7d2c2 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> @@ -40,8 +41,8 @@ inline void Put16(void *p, uint16_t u) { auto ptr = static_cast<uint8_t *>(p); - ptr[0] = (uint8_t)(u >> 8u); - ptr[1] = (uint8_t)(u); + ptr[0] = (uint8_t) (u >> 8u); + ptr[1] = (uint8_t) (u); } inline uint32_t Get32(const void *p) @@ -55,10 +56,10 @@ inline void Put32(void *p, uint32_t u) { auto ptr = static_cast<uint8_t *>(p); - ptr[0] = (uint8_t)(u >> 24u); - ptr[1] = (uint8_t)(u >> 16u); - ptr[2] = (uint8_t)(u >> 8u); - ptr[3] = (uint8_t)(u); + ptr[0] = (uint8_t) (u >> 24u); + ptr[1] = (uint8_t) (u >> 16u); + ptr[2] = (uint8_t) (u >> 8u); + ptr[3] = (uint8_t) (u); } inline uint64_t Get64(const void *p) @@ -76,20 +77,22 @@ inline void Put64(void *p, uint64_t u) { auto ptr = static_cast<uint8_t *>(p); - ptr[0] = (uint8_t)(u >> 56); - ptr[1] = (uint8_t)(u >> 48); - ptr[2] = (uint8_t)(u >> 40u); - ptr[3] = (uint8_t)(u >> 32); - ptr[4] = (uint8_t)(u >> 24u); - ptr[5] = (uint8_t)(u >> 16u); - ptr[6] = (uint8_t)(u >> 8u); - ptr[7] = (uint8_t)(u); + ptr[0] = (uint8_t) (u >> 56); + ptr[1] = (uint8_t) (u >> 48); + ptr[2] = (uint8_t) (u >> 40u); + ptr[3] = (uint8_t) (u >> 32); + ptr[4] = (uint8_t) (u >> 24u); + ptr[5] = (uint8_t) (u >> 16u); + ptr[6] = (uint8_t) (u >> 8u); + ptr[7] = (uint8_t) (u); } inline void PutInt(void *p, uint8_t u) { Put8(p, u); } inline void PutInt(void *p, uint16_t u) { Put16(p, u); } 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 { @@ -123,13 +126,13 @@ D &operator*() const { return *p_; } }; -template <class T, class Mutex = std::mutex, class Lock = std::unique_lock<Mutex>> +template <class T, class TMutex = std::mutex, class Lock = std::unique_lock<TMutex>> class Synced { typedef T Data; - Mutex mutex_; + TMutex mutex_; Data data_; - typedef SyncedPtr<Data, Mutex, Lock> Ptr; + typedef SyncedPtr<Data, TMutex, Lock> Ptr; public: template <class... P> @@ -142,13 +145,5 @@ return f(data_); } }; - -// 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