From 48d4d6111d62a21d0590e8cbb3d74d77d91b0589 Mon Sep 17 00:00:00 2001 From: mutouyun Date: Wed, 8 Jan 2025 20:06:14 +0800 Subject: [PATCH] Start refactoring memory management, adding `memory_resource` --- include/libipc/def.h | 29 ++++---- include/libipc/mem/memory_resource.h | 66 +++++++++++++++++ src/libipc/mem/memory_resource.cpp | 101 ++++++++++++++++++++++++++ src/libipc/mem/verify_args.h | 22 ++++++ test/CMakeLists.txt | 1 + test/mem/test_mem_memory_resource.cpp | 63 ++++++++++++++++ 6 files changed, 268 insertions(+), 14 deletions(-) create mode 100644 include/libipc/mem/memory_resource.h create mode 100644 src/libipc/mem/memory_resource.cpp create mode 100644 src/libipc/mem/verify_args.h create mode 100644 test/mem/test_mem_memory_resource.cpp diff --git a/include/libipc/def.h b/include/libipc/def.h index 45cd780..fdda14a 100755 --- a/include/libipc/def.h +++ b/include/libipc/def.h @@ -26,25 +26,26 @@ using uint_t = typename uint::type; // constants enum : std::uint32_t { - invalid_value = (std::numeric_limits::max)(), - default_timeout = 100, // ms + invalid_value = (std::numeric_limits::max)(), + default_timeout = 100, // ms }; enum : std::size_t { - data_length = 64, - large_msg_limit = data_length, - large_msg_align = 1024, - large_msg_cache = 32, + central_cache_default_size = 1024 * 1024, ///< 1MB + data_length = 64, + large_msg_limit = data_length, + large_msg_align = 1024, + large_msg_cache = 32, }; enum class relat { // multiplicity of the relationship - single, - multi + single, + multi }; enum class trans { // transmission - unicast, - broadcast + unicast, + broadcast }; // producer-consumer policy flag @@ -57,9 +58,9 @@ struct relat_trait; template struct relat_trait> { - constexpr static bool is_multi_producer = (Rp == relat::multi); - constexpr static bool is_multi_consumer = (Rc == relat::multi); - constexpr static bool is_broadcast = (Ts == trans::broadcast); + constexpr static bool is_multi_producer = (Rp == relat::multi); + constexpr static bool is_multi_consumer = (Rc == relat::multi); + constexpr static bool is_broadcast = (Ts == trans::broadcast); }; template