diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2018-12-08 10:43:50 +0100 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2018-12-08 10:43:50 +0100 |
| commit | 0c1d1a0f24655c22a373c19aac90a6a225a353e6 (patch) | |
| tree | e65fe3c5f8b80bb59910c81c700eb3ed545848bb /src/control_interface.cpp | |
| parent | f22d1b76c9a957a679b57ddcb67b33cc73a15de1 (diff) | |
| download | wanda-0c1d1a0f24655c22a373c19aac90a6a225a353e6.tar.xz wanda-0c1d1a0f24655c22a373c19aac90a6a225a353e6.zip | |
wanda: reformat source code
Diffstat (limited to 'src/control_interface.cpp')
| -rw-r--r-- | src/control_interface.cpp | 158 |
1 files changed, 79 insertions, 79 deletions
diff --git a/src/control_interface.cpp b/src/control_interface.cpp index 0a98553..c847f94 100644 --- a/src/control_interface.cpp +++ b/src/control_interface.cpp @@ -13,142 +13,142 @@ namespace wanda { + // 'socket_deleter' implementation -// 'socket_deleter' implementation - -socket_deleter::~socket_deleter() -{ + socket_deleter::~socket_deleter() + { if (std::filesystem::exists(path)) { - std::filesystem::remove(path); + std::filesystem::remove(path); } -} - -// 'control_interface' implementation - -control_interface::control_interface(control_interface::key key, asio::io_service &service, control_interface::protocol::endpoint endpoint, listener & listener, std::shared_ptr<spdlog::logger> logger) - : keyed{key}, - m_service{service}, - m_endpoint{std::move(endpoint)}, - m_socket{m_service}, - m_acceptor{m_service}, - m_listener{listener}, - m_logger{logger} -{ -} - -std::error_code control_interface::start() -{ + } + + // 'control_interface' implementation + + control_interface::control_interface(control_interface::key key, asio::io_service & service, control_interface::protocol::endpoint endpoint, listener & listener, std::shared_ptr<spdlog::logger> logger) + : keyed{key} + , m_service{service} + , m_endpoint{std::move(endpoint)} + , m_socket{m_service} + , m_acceptor{m_service} + , m_listener{listener} + , m_logger{logger} + { + } + + std::error_code control_interface::start() + { if (auto error = std::error_code{}; m_acceptor.open(m_endpoint.protocol(), error)) { - return error; + return error; } if (auto error = std::error_code{}; m_acceptor.bind(m_endpoint, error)) { - return error; + return error; } if (auto error = std::error_code{}; m_acceptor.listen(128, error)) { - return error; + return error; } else { - perform_accept(); - return error; + perform_accept(); + return error; } -} + } -std::error_code control_interface::shutdown() -{ - for (auto &connection : m_connections) + std::error_code control_interface::shutdown() + { + for (auto & connection : m_connections) { - connection->close(); + connection->close(); } auto error = std::error_code{}; return m_acceptor.close(error); -} - -void control_interface::perform_accept() -{ - m_acceptor.async_accept(m_socket, [that = shared_from_this(), this](auto const &error) { - if (error && error != asio::error::operation_aborted) + } + + void control_interface::perform_accept() + { + m_acceptor.async_accept(m_socket, [that = shared_from_this(), this](auto const & error) { + if (error && error != asio::error::operation_aborted) + { + m_logger->error("failed to accept connection because '{}'", error); + } + else + { + m_logger->info("new incoming controller connection"); + auto [connection, inserted] = m_connections.insert(make_control_connection(std::move(m_socket))); + if (inserted) { - m_logger->error("failed to accept connection because '{}'", error); - } - else - { - m_logger->info("new incoming controller connection"); - auto [connection, inserted] = m_connections.insert(make_control_connection(std::move(m_socket))); - if (inserted) - { - (*connection)->add(this); - (*connection)->start(); - } - perform_accept(); + (*connection)->add(this); + (*connection)->start(); } + perform_accept(); + } }); -} + } -void control_interface::on_close(control_connection::pointer connection) -{ + void control_interface::on_close(control_connection::pointer connection) + { if (static_cast<char>(connection->current_state()) >= static_cast<char>(control_connection::state::established)) { - m_logger->info("controller connection closed"); + m_logger->info("controller connection closed"); } else { - m_logger->info("controller connection aborted before it could be established"); + m_logger->info("controller connection aborted before it could be established"); } m_connections.erase(connection); -} + } -void control_interface::on_received(control_connection::pointer connection, message message) -{ + void control_interface::on_received(control_connection::pointer connection, message message) + { using namespace wanda::std_ext; if (m_connections.find(connection) == m_connections.cend()) { - m_logger->error("received message from an unknown connection"); - return; + m_logger->error("received message from an unknown connection"); + return; } if (message.source != message_source_controller) { - m_logger->error("received a deamon message"); - return; + m_logger->error("received a deamon message"); + return; } if (auto state = connection->current_state(); message.command == message_command_hello && state == control_connection::state::fresh) { - m_logger->info("controller connection established"); - if (message.argument.has_value()) - { - m_logger->info("remote controller version '{}'", *message.argument); - } - connection->send({message_source_daemon, message_command_hello, message_argument_hello}); - connection->update(control_connection::state::established); + m_logger->info("controller connection established"); + if (message.argument.has_value()) + { + m_logger->info("remote controller version '{}'", *message.argument); + } + connection->send({message_source_daemon, message_command_hello, message_argument_hello}); + connection->update(control_connection::state::established); } else { - with(make_command(message), [&](auto const & command){ - m_listener.on_received(*this, command); - }) || [&] { m_logger->warn("ignoring unknown message '{}'", message); }; + with(make_command(message), [&](auto const & command) { + m_listener.on_received(*this, command); + }) || + [&] { m_logger->warn("ignoring unknown message '{}'", message); }; } -} + } -control_interface::pointer make_interface(asio::io_service &service, std::filesystem::path file, control_interface::listener & listener, std::shared_ptr<spdlog::logger> logger) -{ + control_interface::pointer make_interface(asio::io_service & service, std::filesystem::path file, control_interface::listener & listener, std::shared_ptr<spdlog::logger> logger) + { if (std::filesystem::exists(file)) { - logger->error("file '{}' exists", file.native()); - return {}; + logger->error("file '{}' exists", file.native()); + return {}; } control_interface::protocol::endpoint endpoint{file.string()}; return std::make_shared<control_interface>(control_interface::key{}, service, std::move(endpoint), listener, logger); -} + } -} // namespace wanda
\ No newline at end of file +} // namespace wanda
\ No newline at end of file |
