// ************************************************************************** // * 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 SHADOW_H_INCLUDED #define SHADOW_H_INCLUDED #ifndef FFS_WIN use in windows build only! #endif #include "zstring.h" #include "file_error.h" #include #include namespace shadow { struct WaitingForShadow { virtual ~WaitingForShadow() {} virtual void requestUiRefresh() = 0; //allowed to throw exceptions virtual void reportInfo(const Zstring& text) = 0; }; class ShadowCopy //buffer access to Windows Volume Shadow Copy Service { public: ShadowCopy(WaitingForShadow* callback); Zstring makeShadowCopy(const Zstring& inputFile); //throw(FileError); returns filename on shadow copy private: ShadowCopy(const ShadowCopy&); ShadowCopy& operator=(const ShadowCopy&); WaitingForShadow* callback_; class ShadowVolume; typedef std::map, LessFilename> VolNameShadowMap; VolNameShadowMap shadowVol; }; } #endif // SHADOW_H_INCLUDED