-
-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathfingerprinter.h
72 lines (59 loc) · 1.51 KB
/
fingerprinter.h
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#ifndef FPSUBMIT_FINGERPRINTER_H_
#define FPSUBMIT_FINGERPRINTER_H_
#include <QObject>
#include <QDir>
#include <QMutex>
#include <QNetworkAccessManager>
#include <QTime>
class AnalyzeResult;
class QNetworkReply;
class Fingerprinter : public QObject
{
Q_OBJECT
public:
Fingerprinter(const QString &apiKey, const QStringList &directories);
~Fingerprinter();
bool isPaused();
bool isCancelled();
bool isRunning();
bool isFinished();
int submitttedFingerprints() const { return m_submittedFiles; }
signals:
void statusChanged(const QString &message);
void currentPathChanged(const QString &path);
void fileListLoadingStarted();
void fingerprintingStarted(int fileCount);
void progress(int i);
void finished();
void networkError(const QString &message);
void authenticationError();
void noFilesError();
public slots:
void start();
void pause();
void resume();
void cancel();
private slots:
void onFileListLoaded(const QStringList &files);
void onFileAnalyzed(AnalyzeResult *);
void onRequestFinished(QNetworkReply *reply);
private:
void fingerprintNextFile();
bool maybeSubmit(bool force=false);
QString m_apiKey;
QStringList m_files;
QStringList m_directories;
QNetworkAccessManager *m_networkAccessManager;
QList<AnalyzeResult *> m_submitQueue;
QStringList m_submitting;
QStringList m_submitted;
QNetworkReply *m_reply;
QTime m_time;
int m_fingerprintedFiles;
int m_submittedFiles;
int m_activeFiles;
bool m_cancelled;
bool m_paused;
bool m_finished;
};
#endif