diff options
author | Daniel Wilhelm <daniel@wili.li> | 2014-04-18 17:13:13 +0200 |
---|---|---|
committer | Daniel Wilhelm <daniel@wili.li> | 2014-04-18 17:13:13 +0200 |
commit | 7f23ee90fd545995a29e2175f15e8b97e59ca67a (patch) | |
tree | f8d0afac51995032e58b9a475ccbbc73ba207baf /library/dir_exist_async.h | |
parent | 3.19 (diff) | |
download | FreeFileSync-7f23ee90fd545995a29e2175f15e8b97e59ca67a.tar.gz FreeFileSync-7f23ee90fd545995a29e2175f15e8b97e59ca67a.tar.bz2 FreeFileSync-7f23ee90fd545995a29e2175f15e8b97e59ca67a.zip |
3.20
Diffstat (limited to 'library/dir_exist_async.h')
-rw-r--r-- | library/dir_exist_async.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/library/dir_exist_async.h b/library/dir_exist_async.h new file mode 100644 index 00000000..661c70d6 --- /dev/null +++ b/library/dir_exist_async.h @@ -0,0 +1,35 @@ +// ************************************************************************** +// * 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 DIR_EXIST_HEADER_08173281673432158067342132467183267 +#define DIR_EXIST_HEADER_08173281673432158067342132467183267 + +#include "../shared/check_exist.h" +#include "status_handler.h" +#include "../shared/file_error.h" +#include "../shared/i18n.h" + +//dir existence checking may hang for non-existent network drives => run asynchronously and update UI! +namespace +{ +using namespace zen; //restricted to unnamed namespace! + +bool dirExistsUpdating(const Zstring& dirname, ProcessCallback& procCallback) +{ + using namespace util; + + std::wstring statusText = _("Searching for directory %x..."); + replace(statusText, L"%x", std::wstring(L"\"") + dirname + L"\"", false); + procCallback.reportInfo(statusText); + + auto ft = dirExistsAsync(dirname); + while (!ft.timed_wait(boost::posix_time::milliseconds(UI_UPDATE_INTERVAL))) + procCallback.requestUiRefresh(); //may throw! + return ft.get(); +} +} + +#endif //DIR_EXIST_HEADER_08173281673432158067342132467183267 |