CCIMXDesktop
 
Loading...
Searching...
No Matches
Scanner.h
1#ifndef SCANNER_H
2#define SCANNER_H
3
4#include <QFutureWatcher>
5#include <QMutex>
6#include <QWidget>
7
8namespace Ui {
9class Scanner;
10}
11
16class Scanner : public QWidget {
17 Q_OBJECT
18 static constexpr const unsigned int TIMEOUT = 1500;
19
20public:
25 explicit Scanner(QWidget* parent = nullptr);
26 ~Scanner();
27
28private:
29 struct DisplayPackage {
30 bool isAccessible { false };
31 QString ip;
32 QString reason;
33 };
34private slots:
35 void start_scan();
36 void set_resume();
37 void set_puase();
38 void set_stop();
39
46 void handle_ip_result(const Scanner::DisplayPackage& pack);
47
48private:
49 Ui::Scanner* ui;
50 QMutex pauseMutex;
51 bool paused { true };
52 bool stopped { true };
57 struct InternalScanPack {
58 quint32 start;
59 quint32 end;
60 quint16 port;
61 };
66 void process_impl_scan(const InternalScanPack pack);
70 void refresh_ui_issue();
71 QFutureWatcher<void> watcher;
72
73 QList<DisplayPackage> allResults;
74};
75
76#endif // SCANNER_H
The Scanner class will scan the port for giving start ip and end ip, and given port.
Definition Scanner.h:16