#ifndef LIBRARIES_UPDATE_COORDINATOR_H #define LIBRARIES_UPDATE_COORDINATOR_H #include class YACReaderLibraries; class LibraryCreator; class LibrariesUpdateCoordinator : public QObject { Q_OBJECT public: LibrariesUpdateCoordinator(QSettings *settings, YACReaderLibraries &libraries, QObject *parent = 0); void init(); void updateLibraries(); void stop(); void cancel(); signals: void updateStarted(); void updateEnded(); private slots: void checkUpdatePolicy(); void startUpdate(); void updateLibrary(const QString &path); private: QSettings *settings; YACReaderLibraries &libraries; QTimer timer; QElapsedTimer elapsedTimer; std::future updateFuture; bool canceled; std::weak_ptr currentLibraryCreator; }; #endif // LIBRARIES_UPDATE_COORDINATOR_H