summaryrefslogtreecommitdiff
path: root/RealtimeSync/monitor.h
diff options
context:
space:
mode:
Diffstat (limited to 'RealtimeSync/monitor.h')
-rw-r--r--RealtimeSync/monitor.h38
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
bgstack15