/** * MainHandler for CombatNetRadio * $Id$ * $HeadURL$ * $Author$ * Created by Hannes Fritsche, SLSE, 2017-09-05 */ #include "main_handler.h" #include "dds_handler.h" #include "active_exercises.h" #include "exercise_manager.h" #include "WebSocketInterface/websocket_interface_handler.h" #include using namespace CombatNetRadio; MainHandler::MainHandler() : m_logger(getLogger("MainHandler")) { } MainHandler::~MainHandler() = default; bool MainHandler::init(int domainId) { DEBUG_LOG(m_logger) << LOGFUNCTION; m_ddsHandler.reset(new DdsHandler(domainId)); if (!m_ddsHandler->init()) { ERROR_LOG(m_logger) << "Initialisation DdsHandler failed."; m_ddsHandler->pacemaker()->setNewState(Core::RunningState::StartingError); return false; } m_activeExercises.reset(new ActiveExercises(m_ddsHandler->exmDtc())); m_exerciseManager.reset(new ExerciseManager(m_activeExercises.get(), m_ddsHandler.get())); m_webSocketInterfaceHandler.reset(new WebSocketInterface::WebSocketInterfaceHandler(m_exerciseManager.get())); if (!m_webSocketInterfaceHandler->init()) { ERROR_LOG(m_logger) << "Initialisation WebSocketInterfaceHandler failed."; m_ddsHandler->pacemaker()->setNewState(Core::RunningState::StartingError); return false; } m_ddsHandler->enableDtcs(); // Remove all Entries m_exerciseManager->onClientConnectionClosed(0); m_ddsHandler->pacemaker()->setNewState(Core::RunningState::Running); return true; }