summaryrefslogtreecommitdiffstats
path: root/src/library/dao/libraryhashdao.h
blob: e3e4b4bf470bf7e2c7dcebc5a086d307f7347d0e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef LIBRARYHASHDAO_H
#define LIBRARYHASHDAO_H

#include <QObject>
#include <QHash>
#include <QString>
#include <QSqlDatabase>

#include "library/dao/dao.h"
#include "util/cache.h"

class LibraryHashDAO : public DAO {
  public:
    ~LibraryHashDAO() override = default;

    QHash<QString, mixxx::cache_key_t> getDirectoryHashes();
    mixxx::cache_key_t getDirectoryHash(const QString& dirPath);
    void saveDirectoryHash(const QString& dirPath, mixxx::cache_key_t hash);
    void updateDirectoryHash(const QString& dirPath, mixxx::cache_key_t newHash,
                             int dir_deleted);
    void markAsExisting(const QString& dirPath);
    void invalidateAllDirectories();
    void markUnverifiedDirectoriesAsDeleted();
    void removeDeletedDirectoryHashes();
    void updateDirectoryStatuses(const QStringList& dirPaths,
                                 const bool deleted, const bool verified);
    QStringList getDeletedDirectories();
};

#endif //LIBRARYHASHDAO_H