#ifndef SCIQLOP_CATALOGUECONTROLLER_H #define SCIQLOP_CATALOGUECONTROLLER_H #include "CoreGlobal.h" #include #include #include #include #include #include class DBCatalogue; class DBEvent; Q_DECLARE_LOGGING_CATEGORY(LOG_CatalogueController) class DataSourceItem; class Variable; /** * @brief The CatalogueController class aims to handle catalogues and event using the CatalogueAPI * library. */ class SCIQLOP_CORE_EXPORT CatalogueController : public QObject { Q_OBJECT public: explicit CatalogueController(QObject *parent = 0); virtual ~CatalogueController(); // DB QStringList getRepositories() const; void addDB(const QString &dbPath); void saveDB(const QString &destinationPath, const QString &repository); // Event bool createEvent(const QString &name); std::list > retrieveEvents(const QString &repository) const; std::list > retrieveAllEvents() const; void updateEvent(std::shared_ptr event); void trashEvent(std::shared_ptr event); void removeEvent(std::shared_ptr event); void restore(QUuid eventId); void saveEvent(std::shared_ptr event); // Catalogue bool createCatalogue(const QString &name, QVector eventList); void getCatalogues(const QString &repository) const; void removeEvent(QUuid catalogueId, const QString &repository); void saveCatalogue(std::shared_ptr event); public slots: /// Manage init/end of the controller void initialize(); void finalize(); private: void waitForFinish(); class CatalogueControllerPrivate; spimpl::unique_impl_ptr impl; }; #endif // SCIQLOP_CATALOGUECONTROLLER_H