diff options
author | Daniel Wilhelm <daniel@wili.li> | 2014-04-18 17:15:16 +0200 |
---|---|---|
committer | Daniel Wilhelm <daniel@wili.li> | 2014-04-18 17:15:16 +0200 |
commit | bd6336c629841c6db3a6ca53a936d629d34db53b (patch) | |
tree | 3721ef997864108df175ce677a8a7d4342a6f1d2 /zen/notify_removal.h | |
parent | 4.0 (diff) | |
download | FreeFileSync-bd6336c629841c6db3a6ca53a936d629d34db53b.tar.gz FreeFileSync-bd6336c629841c6db3a6ca53a936d629d34db53b.tar.bz2 FreeFileSync-bd6336c629841c6db3a6ca53a936d629d34db53b.zip |
4.1
Diffstat (limited to 'zen/notify_removal.h')
-rw-r--r-- | zen/notify_removal.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/zen/notify_removal.h b/zen/notify_removal.h new file mode 100644 index 00000000..bd47684e --- /dev/null +++ b/zen/notify_removal.h @@ -0,0 +1,36 @@ +// ************************************************************************** +// * 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-2011 ZenJu (zhnmju123 AT gmx.de) * +// ************************************************************************** + +#ifndef NOTIFY_H_INCLUDED +#define NOTIFY_H_INCLUDED + +#include <vector> +#include <memory> +#include "win.h" //includes "windows.h" +#include "file_error.h" + +//handle (user-) request for device removal via template method pattern +//evaluate directly after processing window messages +class NotifyRequestDeviceRemoval +{ +public: + NotifyRequestDeviceRemoval(HANDLE hDir); //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::unique_ptr<Pimpl> pimpl; +}; + + +#endif // NOTIFY_H_INCLUDED |