Mercurial > hg > orthanc
diff OrthancFramework/Sources/HttpClient.h @ 4650:9804d6490872
Reduced memory consumption of HTTP/REST plugins calls on POST/PUT if chunked transfer is disabled
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 04 May 2021 10:57:42 +0200 |
parents | d9473bd5ed43 |
children | e8967149d87a |
line wrap: on
line diff
--- a/OrthancFramework/Sources/HttpClient.h Fri Apr 30 10:09:50 2021 +0200 +++ b/OrthancFramework/Sources/HttpClient.h Tue May 04 10:57:42 2021 +0200 @@ -106,6 +106,11 @@ bool headersToLowerCase_; bool redirectionFollowed_; + // New in Orthanc 1.9.3 to avoid memcpy() + bool hasExternalBody_; + const void* externalBodyData_; + size_t externalBodySize_; + void Setup(); void operator= (const HttpClient&); // Assignment forbidden @@ -141,14 +146,23 @@ long GetTimeout() const; - void SetBody(const std::string& data); + void AssignBody(const std::string& data); - std::string& GetBody(); - - const std::string& GetBody() const; + void AssignBody(const void* data, + size_t size); void SetBody(IRequestBody& body); + // New in Orthanc 1.9.3: The "data" buffer must have a lifetime + // that is longer than the HttpClient object + void SetExternalBody(const void* data, + size_t size); + + void SetExternalBody(const std::string& data) + { + SetExternalBody(data.empty() ? NULL : data.c_str(), data.size()); + } + void ClearBody(); void SetVerbose(bool isVerbose);