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_connection.cpp | |
| parent | f22d1b76c9a957a679b57ddcb67b33cc73a15de1 (diff) | |
| download | wanda-0c1d1a0f24655c22a373c19aac90a6a225a353e6.tar.xz wanda-0c1d1a0f24655c22a373c19aac90a6a225a353e6.zip | |
wanda: reformat source code
Diffstat (limited to 'src/control_connection.cpp')
| -rw-r--r-- | src/control_connection.cpp | 153 |
1 files changed, 76 insertions, 77 deletions
diff --git a/src/control_connection.cpp b/src/control_connection.cpp index 1061f44..13e0e5e 100644 --- a/src/control_connection.cpp +++ b/src/control_connection.cpp @@ -4,118 +4,117 @@ namespace wanda { - -control_connection::pointer make_control_connection(control_connection::protocol::socket &&socket) -{ + control_connection::pointer make_control_connection(control_connection::protocol::socket && socket) + { return std::make_shared<control_connection>(control_connection::key{}, std::move(socket)); -} + } -control_connection::control_connection(control_connection::key key, control_connection::protocol::socket socket) - : keyed{key}, - m_socket{std::move(socket)} -{ -} + control_connection::control_connection(control_connection::key key, control_connection::protocol::socket socket) + : keyed{key} + , m_socket{std::move(socket)} + { + } -bool control_connection::add(listener * listener) -{ + bool control_connection::add(listener * listener) + { auto [_, inserted] = m_listeners.insert(listener); return inserted; -} + } -bool control_connection::remove(listener * listener) -{ + bool control_connection::remove(listener * listener) + { return m_listeners.erase(listener); -} + } -void control_connection::start() -{ + void control_connection::start() + { if (m_state == state::unknown) { - m_state = state::fresh; - perform_read(); + m_state = state::fresh; + perform_read(); } -} + } -void control_connection::send(message message) -{ + void control_connection::send(message message) + { m_output << message << '\n'; - asio::async_write(m_socket, m_out, asio::transfer_exactly(message.size() + 1), [that = shared_from_this(), this](auto const &error, auto const length) { - if (error) - { - // TODO: Handle error - } - else - { - m_out.consume(length); - } + asio::async_write(m_socket, m_out, asio::transfer_exactly(message.size() + 1), [that = shared_from_this(), this](auto const & error, auto const length) { + if (error) + { + // TODO: Handle error + } + else + { + m_out.consume(length); + } }); -} + } -void control_connection::close() -{ + void control_connection::close() + { if (auto error = std::error_code{}; m_socket.cancel(error)) { - for (auto &listener : m_listeners) - { - listener->on_error(shared_from_this(), error); - } + for (auto & listener : m_listeners) + { + listener->on_error(shared_from_this(), error); + } } if (auto error = std::error_code{}; m_socket.close(error)) { - for (auto &listener : m_listeners) - { - listener->on_error(shared_from_this(), error); - } + for (auto & listener : m_listeners) + { + listener->on_error(shared_from_this(), error); + } } - for (auto &listener : m_listeners) + for (auto & listener : m_listeners) { - listener->on_close(shared_from_this()); + listener->on_close(shared_from_this()); } m_listeners.clear(); -} + } -void control_connection::update(state state) -{ + void control_connection::update(state state) + { m_state = state; -} + } -control_connection::state control_connection::current_state() const -{ + control_connection::state control_connection::current_state() const + { return m_state; -} + } -void control_connection::perform_read() -{ - asio::async_read_until(m_socket, m_in, '\n', [that = shared_from_this(), this](auto const &error, auto const length) { - if (error) + void control_connection::perform_read() + { + asio::async_read_until(m_socket, m_in, '\n', [that = shared_from_this(), this](auto const & error, auto const length) { + if (error) + { + for (auto & listener : m_listeners) { - for (auto &listener : m_listeners) - { - listener->on_error(shared_from_this(), error); - } - close(); + listener->on_error(shared_from_this(), error); + } + close(); + } + else + { + auto msg = message{}; + m_input >> msg; + if (!m_input) + { + m_input.ignore(std::numeric_limits<std::streamsize>::max()); + m_input.clear(); } else { - auto msg = message{}; - m_input >> msg; - if (!m_input) - { - m_input.ignore(std::numeric_limits<std::streamsize>::max()); - m_input.clear(); - } - else - { - for (auto &listener : m_listeners) - { - listener->on_received(shared_from_this(), msg); - } - } - perform_read(); + for (auto & listener : m_listeners) + { + listener->on_received(shared_from_this(), msg); + } } + perform_read(); + } }); -} + } -} // namespace wanda
\ No newline at end of file +} // namespace wanda
\ No newline at end of file |
