#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; std::list > retrieveEventsFromCatalogue(const QString &repository, std::shared_ptr catalogue) 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); std::list > 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