19 #ifndef MIR_FRONTEND_PROTOBUF_ASIO_COMMUNICATOR_H_
20 #define MIR_FRONTEND_PROTOBUF_ASIO_COMMUNICATOR_H_
24 #include <boost/asio.hpp>
41 class EmergencyCleanupRegistry;
45 class ConnectionCreator;
46 class ConnectorReport;
53 std::shared_ptr<ConnectionCreator>
const& connection_creator,
55 std::shared_ptr<ConnectorReport>
const&
report);
57 void start()
override;
60 int client_socket_fd(std::function<
void(std::shared_ptr<Session>
const& session)>
const& connect_handler)
const override;
64 std::shared_ptr<boost::asio::local::stream_protocol::socket>
const& server_socket,
65 std::function<
void(std::shared_ptr<Session>
const& session)>
const& connect_handler)
const;
68 boost::asio::io_service::work
work;
69 std::shared_ptr<ConnectorReport>
const report;
72 std::vector<std::thread> io_service_threads;
73 std::shared_ptr<ConnectionCreator>
const connection_creator;
82 std::shared_ptr<ConnectionCreator>
const& connection_creator,
85 std::shared_ptr<ConnectorReport>
const&
report);
90 void on_new_connection(std::shared_ptr<boost::asio::local::stream_protocol::socket>
const& socket,
91 boost::system::error_code
const& ec);
94 boost::asio::local::stream_protocol::acceptor acceptor;
99 #endif // MIR_FRONTEND_PROTOBUF_ASIO_COMMUNICATOR_H_
Handle client process connections.
Definition: connector.h:32
All things Mir.
Definition: atomic_callback.h:25
void create_session_for(std::shared_ptr< boost::asio::local::stream_protocol::socket > const &server_socket, std::function< void(std::shared_ptr< Session > const &session)> const &connect_handler) const
Definition: published_socket_connector.cpp:202
void stop() override
Definition: published_socket_connector.cpp:182
boost::asio::io_service::work work
Definition: published_socket_connector.h:68
std::shared_ptr< ConnectorReport > const report
Definition: published_socket_connector.h:69
provides a client-side socket fd for each connection
Definition: published_socket_connector.h:49
~BasicConnector() noexcept
Definition: published_socket_connector.cpp:243
int client_socket_fd() const override
Definition: published_socket_connector.cpp:216
PublishedSocketConnector(const std::string &socket_file, std::shared_ptr< ConnectionCreator > const &connection_creator, int threads, EmergencyCleanupRegistry &emergency_cleanup_registry, std::shared_ptr< ConnectorReport > const &report)
Definition: published_socket_connector.cpp:100
void start() override
Definition: published_socket_connector.cpp:156
boost::asio::io_service io_service
Definition: published_socket_connector.h:67
Definition: emergency_cleanup_registry.h:30
Accept connections over a published socket.
Definition: published_socket_connector.h:77
BasicConnector(std::shared_ptr< ConnectionCreator > const &connection_creator, int threads, std::shared_ptr< ConnectorReport > const &report)
Definition: published_socket_connector.cpp:145
Definition: mir_basic_rpc_channel.h:28
~PublishedSocketConnector() noexcept
Definition: published_socket_connector.cpp:115