/** * @RDE_HEADER@ * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include #include #include "dds_handler.h" #include "exm_db.h" #include "logger.h" #include "WebSocketInterface/websocket_interface_handler.h" #include namespace DBAdministration { class ExerciseTableGenerator; } namespace ExerciseManagement { using DbHandler = NGLDB::DbServiceHandler; class HandlerExercise; class HandlerExercisePhase; class MainHandler : public QObject { Q_OBJECT public: explicit MainHandler(QObject *parent = nullptr); ~MainHandler(); bool init(int domainId); std::shared_ptr exerciseHandler () const { return m_handlerExercise; } std::shared_ptr exercisePhaseHandler () const{ return m_handlerExercisePhases; } std::shared_ptr db() const { return m_dbHandler->db(); } std::shared_ptr dds() const { return m_ddsHandler; } private: bool initDbAdminstration(); bool initExerciseHandler(); bool initExercisePhaseHandler(); bool initWebSocketHandler(); void sendKeepAlive(); private: std::shared_ptr m_handlerExercise; std::shared_ptr m_handlerExercisePhases; std::shared_ptr m_ddsHandler; std::shared_ptr m_dbHandler; std::shared_ptr m_exTblGen; std::shared_ptr m_websocketHandler; NGL::INGLLogger &m_logger; }; } // namespace ExerciseManagement