/** * MainHandler for AssetManagement * $Id$ * $HeadURL$ * $Author$ */ #include "main_handler.h" #include "settings.h" #include "handler_equipment_type_wh.h" #include "handler_injury_model.h" #include "handler_types.h" #include "WsBiteInterface/bite_data_manager.h" #include #include #include namespace WarehouseGuez { MainHandler::MainHandler() : m_logger(getLogger("MainHandler")) {} MainHandler::~MainHandler() { m_wsBaseDataHandler = nullptr; m_handlerEquipTypeWh = nullptr; m_handlerInjuryModel = nullptr; m_handlerTypes = nullptr; m_ddsHandler = nullptr; m_dbHandler = nullptr; } bool MainHandler::init(int domainId) { // initialize database m_dbHandler = std::make_shared(); if (!m_dbHandler->init(0, Settings::settings())) { ERROR_LOG(m_logger) << "Initialisation dbHandler failed."; return false; } DEBUG_LOG(m_logger) << "Initialisation dbHandler succesful."; // initialize DDS m_ddsHandler = std::make_shared(domainId); if (!m_ddsHandler->init()) { ERROR_LOG(m_logger) << "Initialisation ddsHandler failed."; return false; } DEBUG_LOG(m_logger) << "Initialisation ddsHandler succesful."; DEBUG_LOG(m_logger) << "WarehouseManagement FTC initialized"; m_handlerEquipTypeWh = std::make_shared(this); if (!m_handlerEquipTypeWh->init()) { ERROR_LOG(m_logger) << "Initalisation HandlerEquipmentTYpeWH failed"; return false; } m_handlerInjuryModel = std::make_shared(this); if (!m_handlerInjuryModel->init()) { ERROR_LOG(m_logger) << "Initialisation HandlerInjuryModel failed"; return false; } m_handlerTypes = std::make_shared(this); if (!m_handlerTypes->init()) { ERROR_LOG(m_logger) << "Initialisation HandlerTypes failed"; return false; } // WebSocketServer m_wsBaseDataHandler = std::make_shared(this); if (!m_wsBaseDataHandler->init()) { ERROR_LOG(m_logger) << "Initialisation WsBaseDataInterfaceHandler failed."; return false; } m_wsBiteInterfaceHandler = std::make_shared(new WsBiteInterface::DataManager(m_ddsHandler)); if (!m_wsBiteInterfaceHandler->init()) { ERROR_LOG(m_logger) << "Initialisation WsBiteInterfaceHandler failed."; return false; } m_ddsHandler->pacemaker()->setNewState(Core::RunningState::Running); m_ddsHandler->pacemaker()->addPort(m_wsBaseDataHandler->webSocketPort(), Core::PortType::WebSocketServer); return true; } std::shared_ptr MainHandler::db() const { return m_dbHandler->db(); } } // namespace WarehouseGuez