DirectoryWatcher.h++
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __ccxx_DirectoryWatcher_hxx
00024 #define __ccxx_DirectoryWatcher_hxx
00025
00026 #include <commonc++/String.h++>
00027 #include <commonc++/SystemException.h++>
00028 #include <commonc++/Thread.h++>
00029
00030 namespace ccxx {
00031
00043 class COMMONCPP_API DirectoryWatcher : public Thread
00044 {
00045 public:
00046
00048 virtual ~DirectoryWatcher() throw();
00049
00054 void init() throw(SystemException);
00055
00056 protected:
00057
00063 DirectoryWatcher(const String& directory);
00064
00065 void run();
00066
00071 virtual void fileCreated(const String &path) = 0;
00072
00078 virtual void fileDeleted(const String &path) = 0;
00079
00085 virtual void fileModified(const String &path) = 0;
00086
00094 virtual void fileRenamed(const String &oldPath, const String &newPath) = 0;
00095
00096 private:
00097
00098 String _directory;
00099 bool _initialized;
00100
00101 #if defined(CCXX_OS_WINDOWS)
00102 HANDLE _handle;
00103 #else
00104 int _handle;
00105 int _watch;
00106 #endif
00107
00108 CCXX_COPY_DECLS(DirectoryWatcher);
00109 };
00110
00111 };
00112
00113 #endif // __ccxx_DirectoryWatcher_hxx