diff options
author | Daniel Wilhelm <daniel@wili.li> | 2014-04-18 17:08:06 +0200 |
---|---|---|
committer | Daniel Wilhelm <daniel@wili.li> | 2014-04-18 17:08:06 +0200 |
commit | fbe76102e941b9f1edaf236788e42678f05fdf9a (patch) | |
tree | f5f538316019fa89be8dc478103490c3a826f3ac /RealtimeSync/notify.h | |
parent | 3.8 (diff) | |
download | FreeFileSync-fbe76102e941b9f1edaf236788e42678f05fdf9a.tar.gz FreeFileSync-fbe76102e941b9f1edaf236788e42678f05fdf9a.tar.bz2 FreeFileSync-fbe76102e941b9f1edaf236788e42678f05fdf9a.zip |
3.9
Diffstat (limited to 'RealtimeSync/notify.h')
-rw-r--r-- | RealtimeSync/notify.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/RealtimeSync/notify.h b/RealtimeSync/notify.h new file mode 100644 index 00000000..07d74f2a --- /dev/null +++ b/RealtimeSync/notify.h @@ -0,0 +1,40 @@ +// ************************************************************************** +// * This file is part of the FreeFileSync project. It is distributed under * +// * GNU General Public License: http://www.gnu.org/licenses/gpl.html * +// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) * +// ************************************************************************** +// +#ifndef NOTIFY_H_INCLUDED +#define NOTIFY_H_INCLUDED + +#ifndef FFS_WIN +use in windows build only +#endif + +#include <wx/msw/wrapwin.h> //includes "windows.h" +#include "../shared/file_error.h" +#include <vector> +#include <memory> + +//handle (user-) request for device removal via template method pattern +//evaluate directly after processing window messages +class NotifyRequestDeviceRemoval +{ +public: + NotifyRequestDeviceRemoval(const std::vector<HANDLE>& openHandles); //throw (FileError) + virtual ~NotifyRequestDeviceRemoval(); + +private: + virtual void onRequestRemoval(HANDLE hnd) = 0; //throw()! + //NOTE: onRemovalFinished is NOT guaranteed to execute after onRequestRemoval()! but most likely will + virtual void onRemovalFinished(HANDLE hnd, bool successful) = 0; //throw()! + + NotifyRequestDeviceRemoval(NotifyRequestDeviceRemoval&); //no copying + void operator=(NotifyRequestDeviceRemoval&); // + + class Pimpl; + std::auto_ptr<Pimpl> pimpl; +}; + + +#endif // NOTIFY_H_INCLUDED |