19 #ifndef MIR_FRONTEND_PROTOBUF_ASIO_COMMUNICATOR_H_
20 #define MIR_FRONTEND_PROTOBUF_ASIO_COMMUNICATOR_H_
24 #include <boost/asio.hpp>
44 class ConnectorReport;
51 std::shared_ptr<SessionCreator>
const& session_creator,
53 std::shared_ptr<ConnectorReport>
const&
report);
55 void start()
override;
62 void create_session_for(std::shared_ptr<boost::asio::local::stream_protocol::socket>
const& server_socket)
const;
64 boost::asio::io_service::work
work;
65 std::shared_ptr<ConnectorReport>
const report;
68 std::vector<std::thread> io_service_threads;
69 std::shared_ptr<SessionCreator>
const session_creator;
77 const std::string& socket_file,
78 std::shared_ptr<SessionCreator>
const& session_creator,
80 std::shared_ptr<ConnectorReport>
const&
report);
87 void on_new_connection(std::shared_ptr<boost::asio::local::stream_protocol::socket>
const& socket,
88 boost::system::error_code
const& ec);
90 const std::string socket_file;
91 boost::asio::local::stream_protocol::acceptor acceptor;
96 #endif // MIR_FRONTEND_PROTOBUF_ASIO_COMMUNICATOR_H_
Handle client process connections.
Definition: connector.h:27
void remove_endpoint() const override
Definition: published_socket_connector.cpp:66
BasicConnector(std::shared_ptr< SessionCreator > const &session_creator, int threads, std::shared_ptr< ConnectorReport > const &report)
Definition: published_socket_connector.cpp:82
void stop() override
Definition: published_socket_connector.cpp:118
boost::asio::io_service::work work
Definition: published_socket_connector.h:64
std::shared_ptr< ConnectorReport > const report
Definition: published_socket_connector.h:65
provides a client-side socket fd for each connection
Definition: published_socket_connector.h:47
~BasicConnector() noexcept
Definition: published_socket_connector.cpp:170
int client_socket_fd() const override
Definition: published_socket_connector.cpp:144
void start() override
Definition: published_socket_connector.cpp:93
boost::asio::io_service io_service
Definition: published_socket_connector.h:63
PublishedSocketConnector(const std::string &socket_file, std::shared_ptr< SessionCreator > const &session_creator, int threads, std::shared_ptr< ConnectorReport > const &report)
Definition: published_socket_connector.cpp:34
Accept connections over a published socket.
Definition: published_socket_connector.h:73
void remove_endpoint() const override
Definition: published_socket_connector.cpp:166
~PublishedSocketConnector() noexcept
Definition: published_socket_connector.cpp:46
void create_session_for(std::shared_ptr< boost::asio::local::stream_protocol::socket > const &server_socket) const
Definition: published_socket_connector.cpp:138