Commit ebcddbb6 authored by Dominik Charousset's avatar Dominik Charousset

Remove redundant template parameters

parent 39657215
...@@ -13,15 +13,16 @@ namespace caf::detail { ...@@ -13,15 +13,16 @@ namespace caf::detail {
/// Accepts incoming clients with an Acceptor and handles them via a connection /// Accepts incoming clients with an Acceptor and handles them via a connection
/// factory. /// factory.
template <class Acceptor, template <class Acceptor>
class ConnHandle = typename Acceptor::accept_result_type>
class accept_handler : public net::socket_event_layer { class accept_handler : public net::socket_event_layer {
public: public:
// -- member types ----------------------------------------------------------- // -- member types -----------------------------------------------------------
using socket_type = net::socket; using socket_type = net::socket;
using connection_handle = ConnHandle; using transport_type = typename Acceptor::transport_type;
using connection_handle = typename transport_type::connection_handle;
using factory_type = connection_factory<connection_handle>; using factory_type = connection_factory<connection_handle>;
......
...@@ -142,8 +142,7 @@ public: ...@@ -142,8 +142,7 @@ public:
using transport_t = typename Acceptor::transport_type; using transport_t = typename Acceptor::transport_type;
using trait_t = binary::default_trait; using trait_t = binary::default_trait;
using factory_t = cf_impl<transport_t>; using factory_t = cf_impl<transport_t>;
using conn_t = typename transport_t::connection_handle; using impl_t = detail::accept_handler<Acceptor>;
using impl_t = detail::accept_handler<Acceptor, conn_t>;
auto max_connections = get_or(cfg, defaults::net::max_connections); auto max_connections = get_or(cfg, defaults::net::max_connections);
if (auto buf = out.try_open()) { if (auto buf = out.try_open()) {
auto& mpx = sys.network_manager().mpx(); auto& mpx = sys.network_manager().mpx();
......
...@@ -75,8 +75,9 @@ private: ...@@ -75,8 +75,9 @@ private:
}; };
/// Specializes @ref connection_factory for the length-prefixing protocol. /// Specializes @ref connection_factory for the length-prefixing protocol.
template <class Transport, class ConnHandle, class Trait> template <class Transport, class Trait>
class lp_connection_factory : public connection_factory<ConnHandle> { class lp_connection_factory
: public connection_factory<typename Transport::connection_handle> {
public: public:
using accept_event = typename Trait::accept_event; using accept_event = typename Trait::accept_event;
...@@ -84,6 +85,8 @@ public: ...@@ -84,6 +85,8 @@ public:
using shared_producer_type = std::shared_ptr<producer_type>; using shared_producer_type = std::shared_ptr<producer_type>;
using connection_handle = typename Transport::connection_handle;
lp_connection_factory(producer_type producer, size_t max_consecutive_reads) lp_connection_factory(producer_type producer, size_t max_consecutive_reads)
: producer_(std::make_shared<producer_type>(std::move(producer))), : producer_(std::make_shared<producer_type>(std::move(producer))),
max_consecutive_reads_(max_consecutive_reads) { max_consecutive_reads_(max_consecutive_reads) {
...@@ -91,7 +94,7 @@ public: ...@@ -91,7 +94,7 @@ public:
} }
net::socket_manager_ptr make(net::multiplexer* mpx, net::socket_manager_ptr make(net::multiplexer* mpx,
ConnHandle conn) override { connection_handle conn) override {
using bridge_t = lp_server_flow_bridge<Trait>; using bridge_t = lp_server_flow_bridge<Trait>;
auto bridge = bridge_t::make(mpx, producer_); auto bridge = bridge_t::make(mpx, producer_);
auto bridge_ptr = bridge.get(); auto bridge_ptr = bridge.get();
...@@ -144,9 +147,8 @@ private: ...@@ -144,9 +147,8 @@ private:
template <class Acceptor, class OnStart> template <class Acceptor, class OnStart>
expected<disposable> expected<disposable>
do_start_impl(config_type& cfg, Acceptor acc, OnStart& on_start) { do_start_impl(config_type& cfg, Acceptor acc, OnStart& on_start) {
using conn_t = typename Acceptor::accept_result_type;
using transport_t = typename Acceptor::transport_type; using transport_t = typename Acceptor::transport_type;
using factory_t = detail::lp_connection_factory<transport_t, conn_t, Trait>; using factory_t = detail::lp_connection_factory<transport_t, Trait>;
using impl_t = detail::accept_handler<Acceptor>; using impl_t = detail::accept_handler<Acceptor>;
using accept_event = typename Trait::accept_event; using accept_event = typename Trait::accept_event;
auto [pull, push] = async::make_spsc_buffer_resource<accept_event>(); auto [pull, push] = async::make_spsc_buffer_resource<accept_event>();
......
...@@ -27,9 +27,12 @@ ...@@ -27,9 +27,12 @@
namespace caf::detail { namespace caf::detail {
template <class Transport, class ConnHandle> template <class Transport>
class prom_conn_factory : public connection_factory<ConnHandle> { class prom_conn_factory
: public connection_factory<typename Transport::connection_handle> {
public: public:
using connection_handle = typename Transport::connection_handle;
using state_ptr = net::prometheus::server::scrape_state_ptr; using state_ptr = net::prometheus::server::scrape_state_ptr;
explicit prom_conn_factory(state_ptr ptr) : ptr_(std::move(ptr)) { explicit prom_conn_factory(state_ptr ptr) : ptr_(std::move(ptr)) {
...@@ -37,7 +40,7 @@ public: ...@@ -37,7 +40,7 @@ public:
} }
net::socket_manager_ptr make(net::multiplexer* mpx, net::socket_manager_ptr make(net::multiplexer* mpx,
ConnHandle conn) override { connection_handle conn) override {
auto prom_serv = net::prometheus::server::make(ptr_); auto prom_serv = net::prometheus::server::make(ptr_);
auto http_serv = net::http::server::make(std::move(prom_serv)); auto http_serv = net::http::server::make(std::move(prom_serv));
auto transport = Transport::make(std::move(conn), std::move(http_serv)); auto transport = Transport::make(std::move(conn), std::move(http_serv));
...@@ -75,9 +78,8 @@ public: ...@@ -75,9 +78,8 @@ public:
private: private:
template <class Acceptor> template <class Acceptor>
expected<disposable> do_start_impl(config_type& cfg, Acceptor acc) { expected<disposable> do_start_impl(config_type& cfg, Acceptor acc) {
using conn_t = typename Acceptor::accept_result_type;
using transport_t = typename Acceptor::transport_type; using transport_t = typename Acceptor::transport_type;
using factory_t = detail::prom_conn_factory<transport_t, conn_t>; using factory_t = detail::prom_conn_factory<transport_t>;
using impl_t = detail::accept_handler<Acceptor>; using impl_t = detail::accept_handler<Acceptor>;
auto* mpx = cfg.mpx; auto* mpx = cfg.mpx;
auto* registry = &mpx->system().metrics(); auto* registry = &mpx->system().metrics();
......
...@@ -90,8 +90,9 @@ private: ...@@ -90,8 +90,9 @@ private:
}; };
/// Specializes @ref connection_factory for the WebSocket protocol. /// Specializes @ref connection_factory for the WebSocket protocol.
template <class Transport, class ConnHandle, class Trait, class... Ts> template <class Transport, class Trait, class... Ts>
class ws_connection_factory : public connection_factory<ConnHandle> { class ws_connection_factory
: public connection_factory<typename Transport::connection_handle> {
public: public:
using ws_acceptor_t = net::web_socket::acceptor<Ts...>; using ws_acceptor_t = net::web_socket::acceptor<Ts...>;
...@@ -104,6 +105,8 @@ public: ...@@ -104,6 +105,8 @@ public:
using shared_producer_type = std::shared_ptr<producer_type>; using shared_producer_type = std::shared_ptr<producer_type>;
using connection_handle = typename Transport::connection_handle;
ws_connection_factory(on_request_cb_type on_request, ws_connection_factory(on_request_cb_type on_request,
shared_producer_type producer, shared_producer_type producer,
size_t max_consecutive_reads) size_t max_consecutive_reads)
...@@ -114,7 +117,7 @@ public: ...@@ -114,7 +117,7 @@ public:
} }
net::socket_manager_ptr make(net::multiplexer* mpx, net::socket_manager_ptr make(net::multiplexer* mpx,
ConnHandle conn) override { connection_handle conn) override {
if (producer_->canceled()) { if (producer_->canceled()) {
// TODO: stop the caller? // TODO: stop the caller?
return nullptr; return nullptr;
...@@ -197,10 +200,8 @@ private: ...@@ -197,10 +200,8 @@ private:
template <class Acceptor, class OnStart> template <class Acceptor, class OnStart>
expected<disposable> expected<disposable>
do_start_impl(config_type& cfg, Acceptor acc, OnStart& on_start) { do_start_impl(config_type& cfg, Acceptor acc, OnStart& on_start) {
using conn_t = typename Acceptor::accept_result_type;
using transport_t = typename Acceptor::transport_type; using transport_t = typename Acceptor::transport_type;
using factory_t using factory_t = detail::ws_connection_factory<transport_t, Trait, Ts...>;
= detail::ws_connection_factory<transport_t, conn_t, Trait, Ts...>;
using impl_t = detail::accept_handler<Acceptor>; using impl_t = detail::accept_handler<Acceptor>;
using producer_t = async::blocking_producer<accept_event>; using producer_t = async::blocking_producer<accept_event>;
auto [pull, push] = async::make_spsc_buffer_resource<accept_event>(); auto [pull, push] = async::make_spsc_buffer_resource<accept_event>();
......
...@@ -177,8 +177,7 @@ disposable http_serve_impl(actor_system& sys, Acceptor acc, ...@@ -177,8 +177,7 @@ disposable http_serve_impl(actor_system& sys, Acceptor acc,
async::producer_resource<net::http::request> out, async::producer_resource<net::http::request> out,
const settings& cfg = {}) { const settings& cfg = {}) {
using factory_t = http_conn_factory<Transport>; using factory_t = http_conn_factory<Transport>;
using conn_t = typename Transport::connection_handle; using impl_t = accept_handler<Acceptor>;
using impl_t = accept_handler<Acceptor, conn_t>;
auto max_conn = get_or(cfg, defaults::net::max_connections); auto max_conn = get_or(cfg, defaults::net::max_connections);
if (auto buf = out.try_open()) { if (auto buf = out.try_open()) {
auto& mpx = sys.network_manager().mpx(); auto& mpx = sys.network_manager().mpx();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment