summaryrefslogtreecommitdiffstats
path: root/Source/cmServer.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2019-01-30 13:10:19 (GMT)
committerKitware Robot <kwrobot@kitware.com>2019-01-30 13:10:27 (GMT)
commitc30f9b1cdefc2fa26d89bc692001a4f1050f6038 (patch)
tree2c862b3be88b4b600f6ac515d4c76fb039c8df2f /Source/cmServer.cxx
parentbcec7d0778eb87ea58d720d9e20710dc2cdfdab6 (diff)
parent8c92db829b41243790c7dcc5300227f591a727a8 (diff)
downloadCMake-c30f9b1cdefc2fa26d89bc692001a4f1050f6038.zip
CMake-c30f9b1cdefc2fa26d89bc692001a4f1050f6038.tar.gz
CMake-c30f9b1cdefc2fa26d89bc692001a4f1050f6038.tar.bz2
Merge topic 'functional-callbacks'
8c92db829b MessageCallback: Remove unused bool& argument bcee24aecc Use `std::function` for callbacks Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: vvs31415 <vstakhovsky@fastmail.com> Acked-by: Daniel Pfeifer <daniel@pfeifer-mail.de> Merge-request: !2872
Diffstat (limited to 'Source/cmServer.cxx')
-rw-r--r--Source/cmServer.cxx26
1 files changed, 14 insertions, 12 deletions
diff --git a/Source/cmServer.cxx b/Source/cmServer.cxx
index f7d3879..e740c05 100644
--- a/Source/cmServer.cxx
+++ b/Source/cmServer.cxx
@@ -96,11 +96,16 @@ void cmServer::ProcessRequest(cmConnection* connection,
return;
}
- cmSystemTools::SetMessageCallback(reportMessage,
- const_cast<cmServerRequest*>(&request));
+ cmSystemTools::SetMessageCallback(
+ [&request](const char* msg, const char* title) {
+ reportMessage(msg, title, request);
+ });
+
if (this->Protocol) {
this->Protocol->CMakeInstance()->SetProgressCallback(
- reportProgress, const_cast<cmServerRequest*>(&request));
+ [&request](const char* msg, float prog) {
+ reportProgress(msg, prog, request);
+ });
this->WriteResponse(connection, this->Protocol->Process(request),
debug.get());
} else {
@@ -150,28 +155,25 @@ void cmServer::PrintHello(cmConnection* connection) const
this->WriteJsonObject(connection, hello, nullptr);
}
-void cmServer::reportProgress(const char* msg, float progress, void* data)
+void cmServer::reportProgress(const char* msg, float progress,
+ const cmServerRequest& request)
{
- const cmServerRequest* request = static_cast<const cmServerRequest*>(data);
- assert(request);
if (progress < 0.0f || progress > 1.0f) {
- request->ReportMessage(msg, "");
+ request.ReportMessage(msg, "");
} else {
- request->ReportProgress(0, static_cast<int>(progress * 1000), 1000, msg);
+ request.ReportProgress(0, static_cast<int>(progress * 1000), 1000, msg);
}
}
void cmServer::reportMessage(const char* msg, const char* title,
- bool& /* cancel */, void* data)
+ const cmServerRequest& request)
{
- const cmServerRequest* request = static_cast<const cmServerRequest*>(data);
- assert(request);
assert(msg);
std::string titleString;
if (title) {
titleString = title;
}
- request->ReportMessage(std::string(msg), titleString);
+ request.ReportMessage(std::string(msg), titleString);
}
cmServerResponse cmServer::SetProtocolVersion(const cmServerRequest& request)