diff options
author | Javier S. Pedro <maemo@javispedro.com> | 2012-09-17 23:03:03 +0200 |
---|---|---|
committer | Javier S. Pedro <maemo@javispedro.com> | 2012-09-17 23:03:03 +0200 |
commit | c3a1946675855b299a2b36550cdf2c2f69d153aa (patch) | |
tree | f7adf66404cdc47994225b616bcaf082a07dd168 /distfoldd/watcher.h | |
download | distfold-c3a1946675855b299a2b36550cdf2c2f69d153aa.tar.gz distfold-c3a1946675855b299a2b36550cdf2c2f69d153aa.zip |
initial import
Diffstat (limited to 'distfoldd/watcher.h')
-rw-r--r-- | distfoldd/watcher.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/distfoldd/watcher.h b/distfoldd/watcher.h new file mode 100644 index 0000000..861248e --- /dev/null +++ b/distfoldd/watcher.h @@ -0,0 +1,38 @@ +#ifndef WATCHER_H +#define WATCHER_H + +#include <QtCore/QDir> +#include <QtCore/QSocketNotifier> +#include <QtCore/QMap> +#include <QtCore/QHash> + +class Watcher : public QObject +{ + Q_OBJECT +public: + explicit Watcher(const QString& path, QObject *parent = 0); + +signals: + void pathAdded(const QString& path); + void pathRemoved(const QString& path); + void pathChanged(const QString& path); + +private slots: + void readInotify(); + +private: + QStringList scanDirs(const QDir& dir); + void addWatch(const QString& path); + void removeWatch(const QString& path); + void removeWatch(int wd); + +private: + int _fd; + QSocketNotifier *_notifier; + quint32 _mask; + QByteArray _buffer; + QMap<int, QString> _watches; + QHash<QString, int> _dirs; +}; + +#endif // WATCHER_H |