summaryrefslogtreecommitdiffstats
path: root/Source/cmServer.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmServer.h')
-rw-r--r--Source/cmServer.h29
1 files changed, 21 insertions, 8 deletions
diff --git a/Source/cmServer.h b/Source/cmServer.h
index 4a9c3f5..dde5333 100644
--- a/Source/cmServer.h
+++ b/Source/cmServer.h
@@ -24,6 +24,7 @@
#include <string>
#include <vector>
+class cmServerConnection;
class cmServerProtocol;
class cmServerRequest;
class cmServerResponse;
@@ -31,18 +32,24 @@ class cmServerResponse;
class cmServer
{
public:
- cmServer(bool supportExperimental);
- ~cmServer();
+ class DebugInfo;
- bool Serve();
+ cmServer(cmServerConnection* conn, bool supportExperimental);
+ ~cmServer();
- // for callbacks:
- void PopOne();
- void handleData(std::string const& data);
+ bool Serve(std::string* errorMessage);
private:
void RegisterProtocol(cmServerProtocol* protocol);
+ // Callbacks from cmServerConnection:
+ void PopOne();
+ void QueueRequest(const std::string& request);
+
+ static void reportProgress(const char* msg, float progress, void* data);
+ static void reportMessage(const char* msg, const char* title, bool& cancel,
+ void* data);
+
// Handle requests:
cmServerResponse SetProtocolVersion(const cmServerRequest& request);
@@ -51,14 +58,19 @@ private:
// Write responses:
void WriteProgress(const cmServerRequest& request, int min, int current,
int max, const std::string& message) const;
- void WriteResponse(const cmServerResponse& response) const;
+ void WriteMessage(const cmServerRequest& request, const std::string& message,
+ const std::string& title) const;
+ void WriteResponse(const cmServerResponse& response,
+ const DebugInfo* debug) const;
void WriteParseError(const std::string& message) const;
- void WriteJsonObject(Json::Value const& jsonValue) const;
+ void WriteJsonObject(Json::Value const& jsonValue,
+ const DebugInfo* debug) const;
static cmServerProtocol* FindMatchingProtocol(
const std::vector<cmServerProtocol*>& protocols, int major, int minor);
+ cmServerConnection* Connection = nullptr;
const bool SupportExperimental;
cmServerProtocol* Protocol = nullptr;
@@ -84,4 +96,5 @@ private:
mutable bool Writing = false;
friend class cmServerRequest;
+ friend class cmServerConnection;
};