diff options
Diffstat (limited to 'RealtimeSync/monitor.h')
-rw-r--r-- | RealtimeSync/monitor.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/RealtimeSync/monitor.h b/RealtimeSync/monitor.h new file mode 100644 index 00000000..0b9dfbc0 --- /dev/null +++ b/RealtimeSync/monitor.h @@ -0,0 +1,38 @@ +// ************************************************************************** +// * 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 <functional> +#include <zen/zstring.h> + +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<Zstring>& 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 |