yacreader/YACReaderLibrary/libraries_update_coordinator.h
2023-08-20 18:42:11 +02:00

41 lines
860 B
C++

#ifndef LIBRARIES_UPDATE_COORDINATOR_H
#define LIBRARIES_UPDATE_COORDINATOR_H
#include <QtCore>
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<void> updateFuture;
bool canceled;
std::weak_ptr<LibraryCreator> currentLibraryCreator;
};
#endif // LIBRARIES_UPDATE_COORDINATOR_H