00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef EXTERNALCHANGEMONITOR_H
00021 #define EXTERNALCHANGEMONITOR_H
00022
00023 #include "src/config.h"
00024
00025 #include <qobject.h>
00026 #include <qsocketnotifier.h>
00027 #include <qtimer.h>
00028 #include <fam.h>
00029
00030
00045 class ExternalChangeMonitor : public QObject
00046 {
00047 Q_OBJECT
00048 public:
00054 ExternalChangeMonitor();
00055
00059 ~ExternalChangeMonitor();
00060
00065 void changeWorkDirectory(const char* workDirectory);
00066
00074 void startMonitoring();
00075
00079 void stopMonitoring();
00080
00084 void suspendMonitor();
00085
00089 void resumeMonitor();
00090
00091 private:
00092 static const int TIMER_INTERVAL = 500;
00093
00095 FAMConnection *famConn;
00096 FAMRequest famRequest;
00097
00099 QSocketNotifier *socketNotifier;
00100
00101 QString workDirectory;
00102 QString tmpDirectory;
00103
00104 QTimer timer;
00105 QString fileName;
00106 bool refresh;
00107
00108 bool running;
00109
00110 private slots:
00114 void readFam();
00115
00116 void timeout();
00117 };
00118
00119 #endif