/** * MainHandler for AereaEffectSimulation * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include #include "dds_handler.h" #include "opm_db.h" #include "WebSocketInterface/websocket_interface_handler.h" #include "logger.h" namespace NGLDB { template class DbServiceHandler; } namespace OperatorManagement { using DbHandler = NGLDB::DbServiceHandler; class HandlerAccessControlLevel; class HandlerOperator; class HandlerGroup; class HandlerLockedTopics; class HandlerActiveApps; class MainHandler final { public: explicit MainHandler(); ~MainHandler(); bool init(int domainId); std::shared_ptr dtc() const { return m_ddsHandler->dtc(); } std::shared_ptr dts() const { return m_ddsHandler->dts(); } std::shared_ptr fts() const { return m_ddsHandler->fts(); } std::shared_ptr dds() const { return m_ddsHandler; } std::shared_ptr db() const; std::shared_ptr getHandlerGroup() const { return m_handlerGroup; } std::shared_ptr getHandlerOperator() const { return m_handlerOperator; } std::shared_ptr getHandlerAcl() const { return m_handlerAcl; } std::shared_ptr getHandlerLockedTopics() const { return m_handlerLockedTopics; } std::shared_ptr getHandlerActiveApps() const { return m_handlerActiveApps; } private: bool initAclHandler(); bool initOperatorHandler(); bool initGroupHandler(); bool initLockedTopicsHandler(); bool initWebSocketHandler(); bool initActiveApps(); private: std::shared_ptr m_handlerAcl; std::shared_ptr m_handlerOperator; std::shared_ptr m_handlerGroup; std::shared_ptr m_handlerLockedTopics; std::shared_ptr m_ddsHandler; std::shared_ptr m_dbHandler; std::shared_ptr m_handlerWebSocket; std::shared_ptr m_handlerActiveApps; NGL::INGLLogger &m_logger; }; } // namespace ExerciseManagement