// ************************************************************************** // * 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 MONITOR_HEADER_345087425834253425 #define MONITOR_HEADER_345087425834253425 #include #include namespace rts { const int UI_UPDATE_INTERVAL = 100; //unit: [ms]; perform ui updates not more often than necessary, 100 seems to be a good value with only a minimal performance loss struct MonitorCallback { virtual ~MonitorCallback() {} enum WatchPhase { MONITOR_PHASE_ACTIVE, MONITOR_PHASE_WAITING, }; virtual void setPhase(WatchPhase mode) = 0; virtual void executeExternalCommand() = 0; virtual void requestUiRefresh() = 0; virtual void reportError(const std::wstring& msg) = 0; //automatically retries after return! }; void monitorDirectories(const std::vector& dirNamesNonFmt, //non-formatted dirnames that yet require call to getFormattedDirectoryName(); empty directories must be checked by caller! unsigned int delay, MonitorCallback& callback); } #endif //MONITOR_HEADER_345087425834253425