/** * @RDE_HEADER@ * Handler for the WebSocket Interface * $Id$ * $HeadURL$ * $Author$ * Created by Hannes Baeuerle, SLSE, 2016-08-25 */ #include "websocket_interface_handler.h" #include "main_handler.h" #include "data_manager.h" #include "WebSocketInterface/Messages/client_message.h" #include #include "settings.h" namespace InfrastructureManagement { 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"; DEBUG_LOG(m_logger) << "Initialising DataManager"; m_dataManager = new DataManager(m_mainHandler); if (!m_dataManager->init()) { ERROR_LOG(m_logger) << "Failed to initialise DataManager"; return false; } DEBUG_LOG(m_logger) << "... ok"; m_messageFactory = new Messages::ClientMessageFactory(m_dataManager); m_webSocketServer = new LtsWebSocket::LtsWebSocketServer(m_messageFactory, this); DEBUG_LOG(m_logger) << "Setting Message Delay to " << Settings::messageDelay(); m_webSocketServer->setMessageDelay(Settings::messageDelay()); DEBUG_LOG(m_logger) << "Initialising LtsWebSocketServer"; if (!m_webSocketServer->init(QStringLiteral("ISM"), NGL::Connections::port(NGL::Connections::eConnection::ISM_WEBSOCKET))) { ERROR_LOG(m_logger) << "Failed to initialise LtsWebSocketServer"; return false; } DEBUG_LOG(m_logger) << "... ok"; DEBUG_LOG(m_logger) << "Connection signals and slots"; return true; } void WebSocketInterfaceHandler::cleanup() { delete m_webSocketServer; delete m_messageFactory; delete m_dataManager; } } // namespace WebSocketInterface } // namespace InfrastructureManagement