/** * @RDE_HEADER@ * MainHandler for FileManagement * $Id$ * $HeadURL$ * $Author$ * Created by Iuliana Ojog, SLSE, 2017-04-03 */ #pragma once #include #include "dds_handler.h" #include "flm_db.h" #include "logger.h" #include "handler_file_type_info.h" #include "WebSocketInterface/websocket_interface_handler.h" #include namespace FileManagement { using DbHandler = NGLDB::DbServiceHandler; class HandlerFileTypeInfo; class HandlerFolder; class HandlerFileContent; class ThpScriptServer; class PdfServer; class MainHandler : public QObject { Q_OBJECT public: explicit MainHandler(QObject *parent = nullptr); ~MainHandler(); bool init(int domainId); std::shared_ptr dds() const { return m_ddsHandler; } std::shared_ptr db() const { return m_dbHandler->db(); } std::shared_ptr getHandlerFileTypeInfo() const { return m_handlerFileTypeInfo; } std::shared_ptr getHandlerFileContent() const { return m_handlerFileContent; } std::shared_ptr getHandlerFolder() const { return m_handlerFolder; } int exerciseId() const; private: bool initFlmHandler(); private: std::shared_ptr m_ddsHandler; std::shared_ptr m_dbHandler; std::shared_ptr m_handlerFileTypeInfo; std::shared_ptr m_handlerFolder; std::shared_ptr m_handlerFileContent; std::shared_ptr m_handlerWebSocket; std::unique_ptr m_thpScriptServer; std::unique_ptr m_pdfServer; NGL::INGLLogger &m_logger; }; } // namespace FileManagement