fine-tune code

This commit is contained in:
mutouyun 2019-01-17 15:50:56 +08:00
parent c69b351ae9
commit 6a3c3cde23
4 changed files with 15 additions and 9 deletions

View File

@ -291,5 +291,11 @@ public:
}
};
template <relat Rp, relat Rc, trans Ts>
struct prod_cons {
template <std::size_t DataSize>
using elems_t = elem_array<DataSize, prod_cons_circ<Rp, Rc, Ts>>;
};
} // namespace circ
} // namespace ipc

View File

@ -138,7 +138,7 @@ public:
* (one producer/server/sender to multi consumers/clients/receivers)
*/
using route = channel_impl<channel_detail<
ipc::queue, ipc::prod_cons_circ<relat::single, relat::multi, trans::broadcast>
ipc::queue, ipc::circ::prod_cons<relat::single, relat::multi, trans::broadcast>
>>;
/*
@ -150,7 +150,7 @@ using route = channel_impl<channel_detail<
*/
using channel = channel_impl<channel_detail<
ipc::queue, ipc::prod_cons_circ<relat::multi, relat::multi, trans::broadcast>
ipc::queue, ipc::circ::prod_cons<relat::multi, relat::multi, trans::broadcast>
>>;
} // namespace ipc

View File

@ -19,10 +19,10 @@
namespace ipc {
template <typename T,
typename Policy = ipc::prod_cons_circ<relat::single, relat::multi, trans::broadcast>>
typename Policy = ipc::circ::prod_cons<relat::single, relat::multi, trans::broadcast>>
class queue {
public:
using elems_t = circ::elem_array<sizeof(T), Policy>;
using elems_t = typename Policy::template elems_t<sizeof(T)>;
using policy_t = typename elems_t::policy_t;
private:

View File

@ -263,10 +263,10 @@ buff_t channel_detail<Queue, Policy>::recv(handle_t h) {
return detail_impl<Queue, Policy>::recv(h);
}
template struct channel_detail<ipc::queue, ipc::prod_cons_circ<relat::single, relat::single, trans::unicast >>;
template struct channel_detail<ipc::queue, ipc::prod_cons_circ<relat::single, relat::multi , trans::unicast >>;
template struct channel_detail<ipc::queue, ipc::prod_cons_circ<relat::multi , relat::multi , trans::unicast >>;
template struct channel_detail<ipc::queue, ipc::prod_cons_circ<relat::single, relat::multi , trans::broadcast>>;
template struct channel_detail<ipc::queue, ipc::prod_cons_circ<relat::multi , relat::multi , trans::broadcast>>;
template struct channel_detail<ipc::queue, ipc::circ::prod_cons<relat::single, relat::single, trans::unicast >>;
template struct channel_detail<ipc::queue, ipc::circ::prod_cons<relat::single, relat::multi , trans::unicast >>;
template struct channel_detail<ipc::queue, ipc::circ::prod_cons<relat::multi , relat::multi , trans::unicast >>;
template struct channel_detail<ipc::queue, ipc::circ::prod_cons<relat::single, relat::multi , trans::broadcast>>;
template struct channel_detail<ipc::queue, ipc::circ::prod_cons<relat::multi , relat::multi , trans::broadcast>>;
} // namespace ipc