diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2016-09-09 08:01:46 (GMT) |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2016-09-29 19:47:05 (GMT) |
commit | 262500028cb5e6c278cbc0f0a2694b50833dc3ec (patch) | |
tree | 4bf82f767fb7b1870714c041dc9e64ea68c30210 /Source/cmServerProtocol.cxx | |
parent | 0d96e1932937b866343ae8b52c20e0a8c058f3b2 (diff) | |
download | CMake-262500028cb5e6c278cbc0f0a2694b50833dc3ec.zip CMake-262500028cb5e6c278cbc0f0a2694b50833dc3ec.tar.gz CMake-262500028cb5e6c278cbc0f0a2694b50833dc3ec.tar.bz2 |
server-mode: Report watched files to client
* Add a command to report watched files and directories to clients.
Diffstat (limited to 'Source/cmServerProtocol.cxx')
-rw-r--r-- | Source/cmServerProtocol.cxx | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Source/cmServerProtocol.cxx b/Source/cmServerProtocol.cxx index 66cd801..626bff0 100644 --- a/Source/cmServerProtocol.cxx +++ b/Source/cmServerProtocol.cxx @@ -391,6 +391,9 @@ const cmServerResponse cmServerProtocol1_0::Process( if (request.Type == kCONFIGURE_TYPE) { return this->ProcessConfigure(request); } + if (request.Type == kFILESYSTEM_WATCHERS_TYPE) { + return this->ProcessFileSystemWatchers(request); + } if (request.Type == kGLOBAL_SETTINGS_TYPE) { return this->ProcessGlobalSettings(request); } @@ -1019,3 +1022,22 @@ cmServerResponse cmServerProtocol1_0::ProcessSetGlobalSettings( return request.Reply(Json::Value()); } + +cmServerResponse cmServerProtocol1_0::ProcessFileSystemWatchers( + const cmServerRequest& request) +{ + const cmFileMonitor* const fm = FileMonitor(); + Json::Value result = Json::objectValue; + Json::Value files = Json::arrayValue; + for (const auto& f : fm->WatchedFiles()) { + files.append(f); + } + Json::Value directories = Json::arrayValue; + for (const auto& d : fm->WatchedDirectories()) { + directories.append(d); + } + result[kWATCHED_FILES_KEY] = files; + result[kWATCHED_DIRECTORIES_KEY] = directories; + + return request.Reply(result); +} |