Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

FileWatcher.h

Go to the documentation of this file.
00001 /*  FileWatcher.h - class for monitoring file changes.
00002 
00003     Copyright (C) 2001-2004 Mark Weaver
00004     Written by Mark Weaver <mark@npsl.co.uk>
00005 
00006     Part of the Open-Win32 library.
00007     This library is free software; you can redistribute it and/or
00008     modify it under the terms of the GNU Library General Public
00009     License as published by the Free Software Foundation; either
00010     version 2 of the License, or (at your option) any later version.
00011 
00012     This library is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015     Library General Public License for more details.
00016 
00017     You should have received a copy of the GNU Library General Public
00018     License along with this library; if not, write to the
00019     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00020     Boston, MA  02111-1307, USA.
00021 */
00022 
00028 #ifndef OW32_FileWatcher_h
00029 #define OW32_FileWatcher_h
00030 
00031 #include <OW32/windows.h>
00032 
00033 namespace OW32
00034 {
00035 
00037 class OW32_LIB_EXPORT CIoCompletionThreadPool;
00038 
00040 class OW32_LIB_EXPORT CFileWatch;
00041 
00058 class OW32_LIB_EXPORT CFileWatcher
00059 {
00060 public:
00066     CFileWatcher(CIoCompletionThreadPool &ioCompletionPool);
00067 
00071     ~CFileWatcher();
00072 
00076     void cancel();
00077 
00085     void startWatch(CFileWatch *watch, DWORD changesMask = FILE_NOTIFY_CHANGE_LAST_WRITE|FILE_NOTIFY_CHANGE_FILE_NAME);
00086 
00092     void stopWatch(CFileWatch *watch);
00093 
00094 private:
00095     // No copy or assignment
00096     CFileWatcher(const CFileWatcher &other);
00097     CFileWatcher& operator=(const CFileWatcher &other);
00098 
00099     // Hmm, better way?  CFileWatchSet needs to callback into the guts somehow 
00100     // (function pointer?)
00101     friend class CFileWatchSet;
00102 
00104     struct pimpl_;
00106     pimpl_ *m_impl;
00107 };
00108 
00109 } // namespace OW32
00110 
00111 #endif // OW32_FileWatcher_h

Generated on Sun Jun 5 01:29:17 2005 for OW32 by  doxygen 1.3.9.1