Unverified Commit 60fbaa25 authored by Dennis Jenkins's avatar Dennis Jenkins Committed by GitHub

Merge pull request #270 from knowledge4igor/fix_perfomance_issue

Fix perfomance issue: redundant strings copying
parents 496a2d11 9f91c6af
...@@ -257,7 +257,7 @@ public: ...@@ -257,7 +257,7 @@ public:
friend class Client; friend class Client;
RequestBuilder& method(Method method); RequestBuilder& method(Method method);
RequestBuilder& resource(std::string val); RequestBuilder& resource(const std::string& val);
RequestBuilder& params(const Uri::Query& query); RequestBuilder& params(const Uri::Query& query);
RequestBuilder& header(const std::shared_ptr<Header::Header>& header); RequestBuilder& header(const std::shared_ptr<Header::Header>& header);
...@@ -321,11 +321,11 @@ public: ...@@ -321,11 +321,11 @@ public:
static Options options(); static Options options();
void init(const Options& options); void init(const Options& options);
RequestBuilder get(std::string resource); RequestBuilder get(const std::string& resource);
RequestBuilder post(std::string resource); RequestBuilder post(const std::string& resource);
RequestBuilder put(std::string resource); RequestBuilder put(const std::string& resource);
RequestBuilder patch(std::string resource); RequestBuilder patch(const std::string& resource);
RequestBuilder del(std::string resource); RequestBuilder del(const std::string& resource);
void shutdown(); void shutdown();
...@@ -344,7 +344,7 @@ private: ...@@ -344,7 +344,7 @@ private:
Lock queuesLock; Lock queuesLock;
std::unordered_map<std::string, MPMCQueue<std::shared_ptr<Connection::RequestData>, 2048>> requestsQueues; std::unordered_map<std::string, MPMCQueue<std::shared_ptr<Connection::RequestData>, 2048>> requestsQueues;
RequestBuilder prepareRequest(std::string resource, Http::Method method); RequestBuilder prepareRequest(const std::string& resource, Http::Method method);
Async::Promise<Response> doRequest( Async::Promise<Response> doRequest(
Http::Request req, Http::Request req,
......
...@@ -710,8 +710,8 @@ RequestBuilder::method(Method method) ...@@ -710,8 +710,8 @@ RequestBuilder::method(Method method)
} }
RequestBuilder& RequestBuilder&
RequestBuilder::resource(std::string val) { RequestBuilder::resource(const std::string& val) {
request_.resource_ = std::move(val); request_.resource_ = val;
return *this; return *this;
} }
...@@ -791,41 +791,41 @@ Client::shutdown() { ...@@ -791,41 +791,41 @@ Client::shutdown() {
} }
RequestBuilder RequestBuilder
Client::get(std::string resource) Client::get(const std::string& resource)
{ {
return prepareRequest(std::move(resource), Http::Method::Get); return prepareRequest(resource, Http::Method::Get);
} }
RequestBuilder RequestBuilder
Client::post(std::string resource) Client::post(const std::string& resource)
{ {
return prepareRequest(std::move(resource), Http::Method::Post); return prepareRequest(resource, Http::Method::Post);
} }
RequestBuilder RequestBuilder
Client::put(std::string resource) Client::put(const std::string& resource)
{ {
return prepareRequest(std::move(resource), Http::Method::Put); return prepareRequest(resource, Http::Method::Put);
} }
RequestBuilder RequestBuilder
Client::patch(std::string resource) Client::patch(const std::string& resource)
{ {
return prepareRequest(std::move(resource), Http::Method::Patch); return prepareRequest(resource, Http::Method::Patch);
} }
RequestBuilder RequestBuilder
Client::del(std::string resource) Client::del(const std::string& resource)
{ {
return prepareRequest(std::move(resource), Http::Method::Delete); return prepareRequest(resource, Http::Method::Delete);
} }
RequestBuilder RequestBuilder
Client::prepareRequest(std::string resource, Http::Method method) Client::prepareRequest(const std::string& resource, Http::Method method)
{ {
RequestBuilder builder(this); RequestBuilder builder(this);
builder builder
.resource(std::move(resource)) .resource(resource)
.method(method); .method(method);
return builder; return builder;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment