Mercurial > hg > orthanc
diff Core/RestApi/RestApiPutCall.h @ 1446:8dc80ba768aa
refactoring: IHttpHandler does not use std::string to hold the request body
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 01 Jul 2015 13:16:12 +0200 |
parents | f3672356c121 |
children | 3232f1c995a5 |
line wrap: on
line diff
--- a/Core/RestApi/RestApiPutCall.h Wed Jul 01 12:30:19 2015 +0200 +++ b/Core/RestApi/RestApiPutCall.h Wed Jul 01 13:16:12 2015 +0200 @@ -39,7 +39,8 @@ class RestApiPutCall : public RestApiCall { private: - const std::string& data_; + const char* bodyData_; + size_t bodySize_; public: typedef void (*Handler) (RestApiPutCall& call); @@ -50,20 +51,32 @@ const IHttpHandler::Arguments& uriComponents, const UriComponents& trailing, const UriComponents& fullUri, - const std::string& data) : + const char* bodyData, + size_t bodySize) : RestApiCall(output, context, httpHeaders, uriComponents, trailing, fullUri), - data_(data) + bodyData_(bodyData), + bodySize_(bodySize) { } - const std::string& GetPutBody() const + const char* GetBodyData() const + { + return bodyData_; + } + + size_t GetBodySize() const { - return data_; + return bodySize_; + } + + void BodyToString(std::string& result) const + { + result.assign(bodyData_, bodySize_); } virtual bool ParseJsonRequest(Json::Value& result) const { - return ParseJsonRequestInternal(result, GetPutBody().c_str()); + return ParseJsonRequestInternal(result, bodyData_); } }; }