/** * @RDE_HEADER@ * Handler for the WebSocket Interface * $Id$ * $HeadURL$ * $Author$ * Created by Philipp Dassow, SLST, 2017-12-05 */ #pragma once #include #include #include "logger.h" namespace TrainingAreaBase { class MainHandler; namespace WebSocketInterface { namespace ClientMessages { class ClientMessageFactory; } namespace Messages { class ReplyMessage; } class DataManager; /** * @brief The WebSocketInterfaceHandler class is the main class for the WebSocketInterface */ class WebSocketInterfaceHandler final : public QObject { Q_OBJECT public: /** * @brief WebSocketInterfaceHandler Constructor * @param mainHandler MainHandler to get the HandlerStructureElement from */ explicit WebSocketInterfaceHandler(MainHandler *mainHandler, QObject *parent = nullptr); /** * @brief ~WebSocketInterfaceHandler Destructor */ ~WebSocketInterfaceHandler(); /** * @brief init Initialises all needed classes for the WebSocketInterface * @return True on success, otherwise false */ bool init(); bool sendToAllClients(Messages::ReplyMessage *message); /** * @brief webSocketPort returns the listen port * @return listen port */ unsigned short serverWebSocketPort() { return m_webSocketServer->webSocketPort(); } private: void cleanup(); private: LtsWebSocket::LtsWebSocketServer *m_webSocketServer; ClientMessages::ClientMessageFactory *m_messageFactory; DataManager *m_dataManager; MainHandler *m_mainHandler; LOGGER_T m_logger; }; // class WebSocketInterfaceHandle } // namespace WebSocketInterface } // namespace TrainingAreaBase