diff options
Diffstat (limited to 'Source/cmServer.h')
-rw-r--r-- | Source/cmServer.h | 29 |
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; }; |