From 612a59ae31de6a4a2e296a34e7430a991b7bef4b Mon Sep 17 00:00:00 2001 From: mutouyun Date: Mon, 14 Jan 2019 23:10:27 +0800 Subject: [PATCH] ipc::circ::relat => ipc::relat; ipc::circ::trans => ipc::trans --- include/circ_elem_array.h | 10 ----- include/circ_queue.h | 4 +- include/def.h | 10 +++++ include/ipc.h | 4 +- src/ipc.cpp | 10 ++--- test/test_circ.cpp | 80 +++++++++++++++++++-------------------- 6 files changed, 58 insertions(+), 60 deletions(-) diff --git a/include/circ_elem_array.h b/include/circ_elem_array.h index 4923ad4..38173f8 100644 --- a/include/circ_elem_array.h +++ b/include/circ_elem_array.h @@ -41,16 +41,6 @@ elem_t* elem_of(void* ptr) noexcept { } // namespace detail -enum class relat { // multiplicity of the relationship - single, - multi -}; - -enum class trans { // transmission - unicast, - broadcast -}; - //////////////////////////////////////////////////////////////// /// producer-consumer policies //////////////////////////////////////////////////////////////// diff --git a/include/circ_queue.h b/include/circ_queue.h index 58da813..ffd2837 100644 --- a/include/circ_queue.h +++ b/include/circ_queue.h @@ -17,9 +17,7 @@ namespace ipc { namespace circ { template > + typename Policy = circ::prod_cons> class queue { public: using array_t = elem_array; diff --git a/include/def.h b/include/def.h index 3ca8066..46b22a4 100644 --- a/include/def.h +++ b/include/def.h @@ -31,6 +31,16 @@ enum : std::size_t { data_length = 16 }; +enum class relat { // multiplicity of the relationship + single, + multi +}; + +enum class trans { // transmission + unicast, + broadcast +}; + // concept helpers template diff --git a/include/ipc.h b/include/ipc.h index c2f6105..f30c472 100644 --- a/include/ipc.h +++ b/include/ipc.h @@ -139,7 +139,7 @@ public: */ using route = channel_ipml + circ::prod_cons >>; /* @@ -152,7 +152,7 @@ using route = channel_ipml + circ::prod_cons >>; } // namespace ipc diff --git a/src/ipc.cpp b/src/ipc.cpp index ae1c641..8cee789 100644 --- a/src/ipc.cpp +++ b/src/ipc.cpp @@ -261,10 +261,10 @@ buff_t channel_detail::recv(handle_t h) { return detail::recv(h); } -template struct channel_detail>; -template struct channel_detail>; -template struct channel_detail>; -template struct channel_detail>; -template struct channel_detail>; +template struct channel_detail>; +template struct channel_detail>; +template struct channel_detail>; +template struct channel_detail>; +template struct channel_detail>; } // namespace ipc diff --git a/test/test_circ.cpp b/test/test_circ.cpp index 84a539c..124e210 100644 --- a/test/test_circ.cpp +++ b/test/test_circ.cpp @@ -19,9 +19,9 @@ struct msg_t { }; using cq_t = ipc::circ::elem_array>; + ipc::circ::prod_cons>; cq_t* cq__; bool operator==(msg_t const & m1, msg_t const & m2) { @@ -66,10 +66,10 @@ struct test_verify> { } }; -template +template struct test_verify + ipc::relat::multi, + ipc::trans::unicast> > : test_verify { using test_verify::test_verify; @@ -93,13 +93,13 @@ struct test_verify struct quit_mode; -template -struct quit_mode> { +template +struct quit_mode> { using type = volatile bool; }; -template -struct quit_mode> { +template +struct quit_mode> { struct type { constexpr type(bool) {} constexpr operator bool() const { return false; } @@ -263,27 +263,27 @@ void test_prod_cons() { void Unit::test_prod_cons_1v1() { ipc::circ::elem_array< sizeof(msg_t), - ipc::circ::prod_cons + ipc::circ::prod_cons > el_arr_ssu; benchmark_prod_cons<1, 1, LoopCount, cq_t>(&el_arr_ssu); benchmark_prod_cons<1, 1, LoopCount, void>(&el_arr_ssu); ipc::circ::elem_array< sizeof(msg_t), - ipc::circ::prod_cons + ipc::circ::prod_cons > el_arr_smu; benchmark_prod_cons<1, 1, LoopCount, decltype(el_arr_smu)::policy_t>(&el_arr_smu); benchmark_prod_cons<1, 1, LoopCount, void>(&el_arr_smu); ipc::circ::elem_array< sizeof(msg_t), - ipc::circ::prod_cons + ipc::circ::prod_cons > el_arr_mmu; benchmark_prod_cons<1, 1, LoopCount, decltype(el_arr_mmu)::policy_t>(&el_arr_mmu); benchmark_prod_cons<1, 1, LoopCount, void>(&el_arr_mmu); @@ -293,9 +293,9 @@ void Unit::test_prod_cons_1v1() { ipc::circ::elem_array< sizeof(msg_t), - ipc::circ::prod_cons + ipc::circ::prod_cons > el_arr_mmb; benchmark_prod_cons<1, 1, LoopCount, cq_t>(&el_arr_mmb); benchmark_prod_cons<1, 1, LoopCount, void>(&el_arr_mmb); @@ -304,18 +304,18 @@ void Unit::test_prod_cons_1v1() { void Unit::test_prod_cons_1v3() { ipc::circ::elem_array< sizeof(msg_t), - ipc::circ::prod_cons + ipc::circ::prod_cons > el_arr_smu; benchmark_prod_cons<1, 3, LoopCount, decltype(el_arr_smu)::policy_t>(&el_arr_smu); benchmark_prod_cons<1, 3, LoopCount, void>(&el_arr_smu); ipc::circ::elem_array< sizeof(msg_t), - ipc::circ::prod_cons + ipc::circ::prod_cons > el_arr_mmu; benchmark_prod_cons<1, 3, LoopCount, decltype(el_arr_mmu)::policy_t>(&el_arr_mmu); benchmark_prod_cons<1, 3, LoopCount, void>(&el_arr_mmu); @@ -325,9 +325,9 @@ void Unit::test_prod_cons_1v3() { ipc::circ::elem_array< sizeof(msg_t), - ipc::circ::prod_cons + ipc::circ::prod_cons > el_arr_mmb; benchmark_prod_cons<1, 3, LoopCount, cq_t>(&el_arr_mmb); benchmark_prod_cons<1, 3, LoopCount, void>(&el_arr_mmb); @@ -336,9 +336,9 @@ void Unit::test_prod_cons_1v3() { void Unit::test_prod_cons_performance() { ipc::circ::elem_array< sizeof(msg_t), - ipc::circ::prod_cons + ipc::circ::prod_cons > el_arr_smu; ipc::mem::detail::static_for(std::make_index_sequence<10>{}, [&el_arr_smu](auto index) { benchmark_prod_cons<1, decltype(index)::value + 1, LoopCount, void>(&el_arr_smu); @@ -351,9 +351,9 @@ void Unit::test_prod_cons_performance() { ipc::circ::elem_array< sizeof(msg_t), - ipc::circ::prod_cons + ipc::circ::prod_cons > el_arr_mmu; ipc::mem::detail::static_for(std::make_index_sequence<10>{}, [&el_arr_mmu](auto index) { benchmark_prod_cons<1, decltype(index)::value + 1, LoopCount, void>(&el_arr_mmu); @@ -367,9 +367,9 @@ void Unit::test_prod_cons_performance() { ipc::circ::elem_array< sizeof(msg_t), - ipc::circ::prod_cons + ipc::circ::prod_cons > el_arr_mmb; ipc::mem::detail::static_for(std::make_index_sequence<10>{}, [&el_arr_mmb](auto index) { benchmark_prod_cons<1, decltype(index)::value + 1, LoopCount, void>(&el_arr_mmb);