3#include <ixwebsocket/IXConnectionState.h>
4#include <ixwebsocket/IXWebSocket.h>
5#include <readerwriterqueue/readerwriterqueue.h>
16 Server(moodycamel::ReaderWriterQueue<IncomingMachineMessage>
17 &incoming_machine_message_queue,
18 moodycamel::ReaderWriterQueue<OutgoingMachineMessage>
19 &outgoing_machine_message_queue);
53 static std::shared_ptr<ConnectionState>
55 return std::make_shared<MotionMasterConnectionState>();
63 std::unique_ptr<std::thread> server_thread_;
64 std::atomic_bool running_;
66 moodycamel::ReaderWriterQueue<IncomingMachineMessage>
67 &incoming_machine_message_queue_;
68 moodycamel::ReaderWriterQueue<OutgoingMachineMessage>
69 &outgoing_machine_message_queue_;
72 std::unordered_map<std::string ,
73 std::shared_ptr<ix::WebSocket>>
74 dealer_ws_client_map_;
75 std::unordered_map<std::string ,
76 std::shared_ptr<ix::WebSocket>>
79 std::unordered_map<std::string ,
80 moodycamel::ReaderWriterQueue<IncomingMachineMessage>>
81 dealer_ws_incoming_message_map_;
83 std::unordered_map<std::string ,
84 std::vector<std::string> >
85 topic_to_client_ids_map_;
87 std::unordered_map<std::string ,
89 request_id_to_topic_map_;
103 void dealer_ws_close_clean_up(
const std::string &client_id);
110 void sub_ws_close_clean_up(
const std::string &client_id);
120 void send_outgoing_messages();
MotionMasterConnectionState()
Definition: server.h:40
std::string getClientId()
Definition: server.h:42
bool setClientId(const std::string &client_id)
Definition: server.h:44
std::string client_id_
Definition: server.h:59
static std::shared_ptr< ConnectionState > createMotionMasterConnectionState()
Definition: server.h:54
void stop()
Stop the Server.
Definition: server.cc:337
void wait()
block until the Server finishes execution
Definition: server.cc:339
~Server()
Definition: server.cc:24
void start()
Start the Server.
Definition: server.cc:332