CCIMXDesktop
 
Loading...
Searching...
No Matches
FileMonitor.h
Go to the documentation of this file.
1
6#ifndef FILEMONITOR_H
7#define FILEMONITOR_H
8
9#include <QObject> // Base class for FileMonitor, enabling signals/slots
10#include <QSet> // For storing sets of file paths for comparison
11#include <memory> // Required for std::shared_ptr
12
13// Forward declarations to avoid heavy includes
14class QMutex;
15class QTimer; // Required for the timer_scan member
16
28class FileMonitor : public QObject {
29 Q_OBJECT
30
35 static constexpr const int MONIT_INTV = 2000; // 2000 milliseconds = 2 seconds
36
37public:
43 explicit FileMonitor(const QString& path, QObject* parent = nullptr);
44
51 void setMonitorDirent(const QString& newPath);
52
57 QString monitorDirent() const;
58
65 void setMonitorScanInterval(const int interval);
66
71 int monitorScanInterval() const;
72
79 void setMonitoringState(bool st);
80
85 bool monitoringState() const;
86
87signals:
92 void newFiles(const QStringList& files);
93
98 void deletedFiles(const QStringList& files);
99
104 void monitoringChanged(const QString& path);
105
110 void monitoringIntervalChanged(const int new_interval);
111
116 void monitoringStateChanged(const bool new_state);
117
118private slots:
125 void processCompareSession();
126
127private:
128 QString monitoring_folder;
129 QTimer* timer_scan;
130 QSet<QString> scanFiles() const;
131 QSet<QString> prevFiles;
132 std::shared_ptr<QMutex> mutex;
133};
134
135#endif // FILEMONITOR_H
Monitors a specified directory for file additions or deletions at regular intervals.
Definition FileMonitor.h:28
void setMonitorScanInterval(const int interval)
Sets the interval (in milliseconds) at which the directory will be scanned.
Definition FileMonitor.cpp:28
void newFiles(const QStringList &files)
Signal emitted when new files are detected in the monitored directory.
int monitorScanInterval() const
Returns the current monitoring scan interval.
Definition FileMonitor.cpp:33
void setMonitoringState(bool st)
Sets the monitoring state (active or inactive).
Definition FileMonitor.cpp:37
void setMonitorDirent(const QString &newPath)
Sets the directory path to be monitored.
Definition FileMonitor.cpp:18
QString monitorDirent() const
Returns the current directory path being monitored.
Definition FileMonitor.cpp:24
bool monitoringState() const
Returns the current monitoring state.
Definition FileMonitor.cpp:45
void monitoringChanged(const QString &path)
Signal emitted when the monitored directory path changes.
void monitoringIntervalChanged(const int new_interval)
Signal emitted when the monitoring scan interval changes.
void deletedFiles(const QStringList &files)
Signal emitted when files are detected as deleted from the monitored directory.
void monitoringStateChanged(const bool new_state)
Signal emitted when the monitoring state (active/inactive) changes.