diff options
Diffstat (limited to 'lib/parallel_scan.h')
-rw-r--r-- | lib/parallel_scan.h | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/lib/parallel_scan.h b/lib/parallel_scan.h deleted file mode 100644 index 408882bf..00000000 --- a/lib/parallel_scan.h +++ /dev/null @@ -1,76 +0,0 @@ -// ************************************************************************** -// * 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) Zenju (zenju AT gmx DOT de) - All Rights Reserved * -// ************************************************************************** - -#ifndef PARALLEL_SCAN_H_INCLUDED -#define PARALLEL_SCAN_H_INCLUDED - -#include <map> -#include <set> -#include "hard_filter.h" -#include "../structures.h" -#include "../file_hierarchy.h" - -namespace zen -{ -struct DirectoryKey -{ - DirectoryKey(const Zstring& dirnameFull, - const HardFilter::FilterRef& filter, - SymLinkHandling handleSymlinks) : - dirnameFull_(dirnameFull), - filter_(filter), - handleSymlinks_(handleSymlinks) {} - - Zstring dirnameFull_; - HardFilter::FilterRef filter_; //filter interface: always bound by design! - SymLinkHandling handleSymlinks_; -}; - -inline -bool operator<(const DirectoryKey& lhs, const DirectoryKey& rhs) -{ - if (lhs.handleSymlinks_ != rhs.handleSymlinks_) - return lhs.handleSymlinks_ < rhs.handleSymlinks_; - - const int cmpName = cmpFileName(lhs.dirnameFull_, rhs.dirnameFull_); - if (cmpName != 0) - return cmpName < 0; - - return *lhs.filter_ < *rhs.filter_; -} - - -struct DirectoryValue -{ - DirContainer dirCont; - std::set<Zstring> failedDirReads; //relative postfixed names (or empty string for root) for directories that could not be read (completely), e.g. access denied, or temporal network drop - std::set<Zstring> failedItemReads; //relative postfixed names (never empty) for failure to read single file/dir/symlink -}; - - -class FillBufferCallback -{ -public: - virtual ~FillBufferCallback() {} - - enum HandleError - { - ON_ERROR_RETRY, - ON_ERROR_IGNORE - }; - virtual HandleError reportError (const std::wstring& msg, size_t retryNumber) = 0; //may throw! - virtual void reportStatus(const std::wstring& msg, int itemsTotal ) = 0; // -}; - -//attention: ensure directory filtering is applied later to exclude filtered directories which have been kept as parent folders - -void fillBuffer(const std::set<DirectoryKey>& keysToRead, //in - std::map<DirectoryKey, DirectoryValue>& buf, //out - FillBufferCallback& callback, - size_t updateInterval); //unit: [ms] -} - -#endif // PARALLEL_SCAN_H_INCLUDED |