diff options
Diffstat (limited to 'src/osd/modules/output/network.cpp')
-rw-r--r-- | src/osd/modules/output/network.cpp | 98 |
1 files changed, 49 insertions, 49 deletions
diff --git a/src/osd/modules/output/network.cpp b/src/osd/modules/output/network.cpp index a19a9a2d5a8..63ab96e499d 100644 --- a/src/osd/modules/output/network.cpp +++ b/src/osd/modules/output/network.cpp @@ -27,11 +27,11 @@ using client_set = std::set<output_client_ptr>; class output_session : public output_client, public std::enable_shared_from_this<output_session> - + { public: - output_session(asio::ip::tcp::socket socket, client_set *clients) : - m_socket(std::move(socket)), + output_session(asio::ip::tcp::socket socket, client_set *clients) : + m_socket(std::move(socket)), m_clients(clients) { } @@ -39,44 +39,44 @@ public: void start() { m_clients->insert(shared_from_this()); - do_read(); + do_read(); } private: void deliver(std::string &msg) { - std::strncpy(m_data, msg.c_str(), max_length); + std::strncpy(m_data, msg.c_str(), max_length); do_write(msg.size()); } void do_read() { - auto self(shared_from_this()); - m_socket.async_read_some(asio::buffer(m_input_m_data, max_length), - [this, self](std::error_code ec, std::size_t length) - { - if (!ec) - { - do_read(); - } - else - { - m_clients->erase(shared_from_this()); - } - }); + auto self(shared_from_this()); + m_socket.async_read_some(asio::buffer(m_input_m_data, max_length), + [this, self](std::error_code ec, std::size_t length) + { + if (!ec) + { + do_read(); + } + else + { + m_clients->erase(shared_from_this()); + } + }); } void do_write(std::size_t length) { - auto self(shared_from_this()); - asio::async_write(m_socket, asio::buffer(m_data, length), - [this, self](std::error_code ec, std::size_t /*length*/) - { - if (ec) - { - m_clients->erase(shared_from_this()); - } - }); + auto self(shared_from_this()); + asio::async_write(m_socket, asio::buffer(m_data, length), + [this, self](std::error_code ec, std::size_t /*length*/) + { + if (ec) + { + m_clients->erase(shared_from_this()); + } + }); } asio::ip::tcp::socket m_socket; @@ -89,33 +89,33 @@ private: class output_network_server { public: - output_network_server(asio::io_context& io_context, short port) : - m_acceptor(io_context, asio::ip::tcp::endpoint(asio::ip::tcp::v4(), port)) + output_network_server(asio::io_context& io_context, short port) : + m_acceptor(io_context, asio::ip::tcp::endpoint(asio::ip::tcp::v4(), port)) { - do_accept(); + do_accept(); } - + void deliver_to_all(std::string msg) { for (auto client: m_clients) - client->deliver(msg); + client->deliver(msg); } private: void do_accept() { - m_acceptor.async_accept( - [this](std::error_code ec, asio::ip::tcp::socket socket) - { - if (!ec) - { - std::make_shared<output_session>(std::move(socket),&m_clients)->start(); - } - - do_accept(); - }); + m_acceptor.async_accept( + [this](std::error_code ec, asio::ip::tcp::socket socket) + { + if (!ec) + { + std::make_shared<output_session>(std::move(socket),&m_clients)->start(); + } + + do_accept(); + }); } - + asio::ip::tcp::acceptor m_acceptor; client_set m_clients; }; @@ -125,23 +125,23 @@ class output_network : public osd_module, public output_module { public: output_network() - : osd_module(OSD_OUTPUT_PROVIDER, "network"), - output_module(), + : osd_module(OSD_OUTPUT_PROVIDER, "network"), + output_module(), m_io_context(nullptr), m_server(nullptr) { } - - virtual ~output_network() + + virtual ~output_network() { } - virtual int init(const osd_options &options) override + virtual int init(const osd_options &options) override { m_working_thread = std::thread([](output_network* self) { self->process_output(); }, this); return 0; } - virtual void exit() override + virtual void exit() override { m_io_context->stop(); m_working_thread.join(); |