/** * @RDE_HEADER@ * Handler for the WebSocket Interface * $Id$ * $HeadURL$ * $Author$ * Created by Philipp Dassow, SLST, 2017-12-05 */ #include "websocket_interface_handler.h" #include "main_handler.h" #include "data_manager.h" #include "WebSocketInterface/Messages/client_message.h" #include "WebSocketInterface/Messages/reply_message.h" #include "settings.h" namespace TrainingAreaBase { namespace WebSocketInterface { WebSocketInterfaceHandler::WebSocketInterfaceHandler(MainHandler *mainHandler, QObject *parent) : QObject(parent) , m_webSocketServer(nullptr) , m_messageFactory(nullptr) , m_dataManager(nullptr) , m_mainHandler(mainHandler) , m_logger(getLogger("WebSocketInterfaceHandler")) { } WebSocketInterfaceHandler::~WebSocketInterfaceHandler() { cleanup(); } bool WebSocketInterfaceHandler::init() { cleanup(); DEBUG_LOG(m_logger) << "... ok"; m_dataManager = new DataManager(m_mainHandler); m_messageFactory = new ClientMessages::ClientMessageFactory(m_dataManager); m_webSocketServer = new LtsWebSocket::LtsWebSocketServer(m_messageFactory, this); DEBUG_LOG(m_logger) << "Initialising LtsWebSocketServer"; if (!m_webSocketServer->init(QStringLiteral("TAB"), Settings::getWebSocketServerPortRange(1))) { ERROR_LOG(m_logger) << "Failed to initialise LtsWebSocketServer"; return false; } DEBUG_LOG(m_logger) << "... ok"; DEBUG_LOG(m_logger) << "Connection signals and slots"; DEBUG_LOG(m_logger) << "... ok"; return true; } bool WebSocketInterfaceHandler::sendToAllClients(WebSocketInterface::Messages::ReplyMessage *message) { if(!m_webSocketServer) return false; m_webSocketServer->sendToAllClients(message); return true; } void WebSocketInterfaceHandler::cleanup() { delete m_webSocketServer; delete m_messageFactory; delete m_dataManager; } } // namespace WebSocketInterface } // namespace TrainingAreaBase