X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/40152925d51548122ffee555fce9648016b96a1e..6b8ef0b35d674bc262eb2005ac1321762c831d31:/include/wx/unix/private/fswatcher_inotify.h diff --git a/include/wx/unix/private/fswatcher_inotify.h b/include/wx/unix/private/fswatcher_inotify.h new file mode 100644 index 0000000000..ea6f8886c3 --- /dev/null +++ b/include/wx/unix/private/fswatcher_inotify.h @@ -0,0 +1,71 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wx/unix/private/fswatcher_inotify.h +// Purpose: File system watcher impl classes +// Author: Bartosz Bekier +// Created: 2009-05-26 +// RCS-ID: $Id$ +// Copyright: (c) 2009 Bartosz Bekier +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef WX_UNIX_PRIVATE_FSWATCHER_INOTIFY_H_ +#define WX_UNIX_PRIVATE_FSWATCHER_INOTIFY_H_ + +#include "wx/filename.h" + +// ============================================================================ +// wxFSWatcherEntry implementation & helper declarations +// ============================================================================ + +class wxFSWatcherImplUNIX; + +class wxFSWatchEntry : public wxFSWatchInfo +{ +public: + wxFSWatchEntry(const wxFSWatchInfo& winfo) : + wxFSWatchInfo(winfo) + { + } + + int GetWatchDescriptor() const + { + return m_wd; + } + + void SetWatchDescriptor(int wd) + { + m_wd = wd; + } + +private: + int m_wd; + + wxDECLARE_NO_COPY_CLASS(wxFSWatchEntry); +}; + + +// ============================================================================ +// wxFSWSourceHandler helper class +// ============================================================================ + +class wxFSWatcherImplUnix; + +/** + * Handler for handling i/o from inotify descriptor + */ +class wxFSWSourceHandler : public wxEventLoopSourceHandler +{ +public: + wxFSWSourceHandler(wxFSWatcherImplUnix* service) : + m_service(service) + { } + + virtual void OnReadWaiting(); + virtual void OnWriteWaiting(); + virtual void OnExceptionWaiting(); + +protected: + wxFSWatcherImplUnix* m_service; +}; + +#endif /* WX_UNIX_PRIVATE_FSWATCHER_INOTIFY_H_ */