3#include <ixwebsocket/IXConnectionState.h>
4#include <ixwebsocket/IXWebSocket.h>
5#include <readerwriterqueue/readerwriterqueue.h>
17 Server(moodycamel::ReaderWriterQueue<IncomingMachineMessage>
18 &incoming_machine_message_queue,
19 moodycamel::ReaderWriterQueue<OutgoingMachineMessage>
20 &outgoing_machine_message_queue);
54 static std::shared_ptr<ConnectionState>
56 return std::make_shared<MotionMasterConnectionState>();
64 zmq::context_t context_;
66 zmq::socket_t frontend_socket_;
67 zmq::socket_t forwarder_frontend_socket_;
69 std::unique_ptr<std::thread> server_thread_;
70 std::atomic_bool running_;
72 moodycamel::ReaderWriterQueue<IncomingMachineMessage>
73 &incoming_machine_message_queue_;
74 moodycamel::ReaderWriterQueue<OutgoingMachineMessage>
75 &outgoing_machine_message_queue_;
78 std::unordered_map<std::string ,
79 std::shared_ptr<ix::WebSocket>>
80 dealer_ws_client_map_;
81 std::unordered_map<std::string ,
82 std::shared_ptr<ix::WebSocket>>
85 std::unordered_map<std::string ,
86 moodycamel::ReaderWriterQueue<IncomingMachineMessage>>
87 dealer_ws_incoming_message_map_;
89 std::unordered_map<std::string ,
90 std::vector<std::string> >
91 topic_to_client_ids_map_;
93 std::unordered_map<std::string ,
95 request_id_to_topic_map_;
109 void dealer_ws_close_clean_up(
const std::string &client_id);
116 void sub_ws_close_clean_up(
const std::string &client_id);
126 void send_outgoing_messages();
MotionMasterConnectionState()
Definition: server.h:41
std::string getClientId()
Definition: server.h:43
bool setClientId(const std::string &client_id)
Definition: server.h:45
std::string client_id_
Definition: server.h:60
static std::shared_ptr< ConnectionState > createMotionMasterConnectionState()
Definition: server.h:55
void stop()
Stop the Server.
Definition: server.cc:389
void wait()
block until the Server finishes execution
Definition: server.cc:391
~Server()
Definition: server.cc:33
void start()
Start the Server.
Definition: server.cc:384