Commit ebcddbb6 authored by Dominik Charousset's avatar Dominik Charousset

Remove redundant template parameters

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