00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef FXFSMONITOR_H
00023 #define FXFSMONITOR_H
00024
00025 #include "FXGenericTools.h"
00026
00027 namespace FX {
00028
00033 class FXString;
00034 class QFileInfo;
00035
00113 class FXAPIR FXFSMonitor
00114 {
00115 public:
00117 struct Change
00118 {
00119 FXulong eventNo;
00120 FXuint modified : 1;
00121 FXuint created : 1;
00122 FXuint deleted : 1;
00123 FXuint renamed : 1;
00124 FXuint attrib : 1;
00125 FXuint security : 1;
00126 Change() : eventNo(0), modified(false), created(false), deleted(false), renamed(false), attrib(false), security(false) { }
00127 Change(int) : eventNo(0), modified(true), created(true), deleted(true), renamed(true), attrib(true), security(true) { }
00128 operator FXuint() const throw()
00129 {
00130 struct Change_ { FXulong eventNo; FXuint flags; } *me=(Change_ *) this;
00131 return me->flags;
00132 }
00134 Change &setModified(bool v=true) throw() { modified=v; return *this; }
00136 Change &setCreated(bool v=true) throw() { created=v; return *this; }
00138 Change &setDeleted(bool v=true) throw() { deleted=v; return *this; }
00140 Change &setRenamed(bool v=true) throw() { renamed=v; return *this; }
00142 Change &setAttrib(bool v=true) throw() { attrib=v; return *this; }
00144 Change &setSecurity(bool v=true) throw() { security=v; return *this; }
00145 };
00146 typedef Generic::TL::create<void, Change, QFileInfo, QFileInfo>::value ChangeHandlerPars;
00148 typedef Generic::Functor<ChangeHandlerPars> ChangeHandler;
00150 static void add(const FXString &path, ChangeHandler handler);
00152 static bool remove(const FXString &path, ChangeHandler handler);
00153 };
00154
00155 }
00156
00157 #endif