blob: 0b9dfbc04f0885a3e089366702f794235e0d124b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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
|