shrpx_downstream.cc: Utilize std::move

This commit is contained in:
Tatsuhiro Tsujikawa 2013-09-24 23:53:55 +09:00
parent dc0af2e074
commit 825c1bac6b
4 changed files with 25 additions and 27 deletions

View File

@ -190,18 +190,17 @@ Headers::const_iterator Downstream::get_norm_request_header
return get_norm_header(request_headers_, name); return get_norm_header(request_headers_, name);
} }
void Downstream::add_request_header(const std::string& name, void Downstream::add_request_header(std::string name, std::string value)
const std::string& value)
{ {
request_header_key_prev_ = true; request_header_key_prev_ = true;
request_headers_.push_back(std::make_pair(name, value)); request_headers_.emplace_back(std::move(name), std::move(value));
} }
void Downstream::set_last_request_header_value(const std::string& value) void Downstream::set_last_request_header_value(std::string value)
{ {
request_header_key_prev_ = false; request_header_key_prev_ = false;
Headers::value_type &item = request_headers_.back(); Headers::value_type &item = request_headers_.back();
item.second = value; item.second = std::move(value);
check_transfer_encoding_chunked(&chunked_request_, item); check_transfer_encoding_chunked(&chunked_request_, item);
check_expect_100_continue(&request_expect_100_continue_, item); check_expect_100_continue(&request_expect_100_continue_, item);
} }
@ -214,20 +213,20 @@ bool Downstream::get_request_header_key_prev() const
void Downstream::append_last_request_header_key(const char *data, size_t len) void Downstream::append_last_request_header_key(const char *data, size_t len)
{ {
assert(request_header_key_prev_); assert(request_header_key_prev_);
Headers::value_type &item = request_headers_.back(); auto& item = request_headers_.back();
item.first.append(data, len); item.first.append(data, len);
} }
void Downstream::append_last_request_header_value(const char *data, size_t len) void Downstream::append_last_request_header_value(const char *data, size_t len)
{ {
assert(!request_header_key_prev_); assert(!request_header_key_prev_);
Headers::value_type &item = request_headers_.back(); auto& item = request_headers_.back();
item.second.append(data, len); item.second.append(data, len);
} }
void Downstream::set_request_method(const std::string& method) void Downstream::set_request_method(std::string method)
{ {
request_method_ = method; request_method_ = std::move(method);
} }
const std::string& Downstream::get_request_method() const const std::string& Downstream::get_request_method() const
@ -235,9 +234,9 @@ const std::string& Downstream::get_request_method() const
return request_method_; return request_method_;
} }
void Downstream::set_request_path(const std::string& path) void Downstream::set_request_path(std::string path)
{ {
request_path_ = path; request_path_ = std::move(path);
} }
void Downstream::append_request_path(const char *data, size_t len) void Downstream::append_request_path(const char *data, size_t len)
@ -372,20 +371,19 @@ Headers::const_iterator Downstream::get_norm_response_header
return get_norm_header(response_headers_, name); return get_norm_header(response_headers_, name);
} }
void Downstream::add_response_header(const std::string& name, void Downstream::add_response_header(std::string name, std::string value)
const std::string& value)
{ {
response_header_key_prev_ = true; response_header_key_prev_ = true;
response_headers_.push_back(std::make_pair(name, value)); response_headers_.emplace_back(std::move(name), std::move(value));
check_transfer_encoding_chunked(&chunked_response_, check_transfer_encoding_chunked(&chunked_response_,
response_headers_.back()); response_headers_.back());
} }
void Downstream::set_last_response_header_value(const std::string& value) void Downstream::set_last_response_header_value(std::string value)
{ {
response_header_key_prev_ = false; response_header_key_prev_ = false;
Headers::value_type &item = response_headers_.back(); auto& item = response_headers_.back();
item.second = value; item.second = std::move(value);
check_transfer_encoding_chunked(&chunked_response_, item); check_transfer_encoding_chunked(&chunked_response_, item);
} }
@ -397,7 +395,7 @@ bool Downstream::get_response_header_key_prev() const
void Downstream::append_last_response_header_key(const char *data, size_t len) void Downstream::append_last_response_header_key(const char *data, size_t len)
{ {
assert(response_header_key_prev_); assert(response_header_key_prev_);
Headers::value_type &item = response_headers_.back(); auto& item = response_headers_.back();
item.first.append(data, len); item.first.append(data, len);
} }
@ -405,7 +403,7 @@ void Downstream::append_last_response_header_value(const char *data,
size_t len) size_t len)
{ {
assert(!response_header_key_prev_); assert(!response_header_key_prev_);
Headers::value_type &item = response_headers_.back(); auto& item = response_headers_.back();
item.second.append(data, len); item.second.append(data, len);
} }

View File

@ -93,16 +93,16 @@ public:
// called after calling normalize_request_headers(). // called after calling normalize_request_headers().
Headers::const_iterator get_norm_request_header Headers::const_iterator get_norm_request_header
(const std::string& name) const; (const std::string& name) const;
void add_request_header(const std::string& name, const std::string& value); void add_request_header(std::string name, std::string value);
void set_last_request_header_value(const std::string& value); void set_last_request_header_value(std::string value);
bool get_request_header_key_prev() const; bool get_request_header_key_prev() const;
void append_last_request_header_key(const char *data, size_t len); void append_last_request_header_key(const char *data, size_t len);
void append_last_request_header_value(const char *data, size_t len); void append_last_request_header_value(const char *data, size_t len);
void set_request_method(const std::string& method); void set_request_method(std::string method);
const std::string& get_request_method() const; const std::string& get_request_method() const;
void set_request_path(const std::string& path); void set_request_path(std::string path);
void append_request_path(const char *data, size_t len); void append_request_path(const char *data, size_t len);
const std::string& get_request_path() const; const std::string& get_request_path() const;
void set_request_major(int major); void set_request_major(int major);
@ -138,8 +138,8 @@ public:
// called after calling normalize_response_headers(). // called after calling normalize_response_headers().
Headers::const_iterator get_norm_response_header Headers::const_iterator get_norm_response_header
(const std::string& name) const; (const std::string& name) const;
void add_response_header(const std::string& name, const std::string& value); void add_response_header(std::string name, std::string value);
void set_last_response_header_value(const std::string& value); void set_last_response_header_value(std::string value);
bool get_response_header_key_prev() const; bool get_response_header_key_prev() const;
void append_last_response_header_key(const char *data, size_t len); void append_last_response_header_key(const char *data, size_t len);

View File

@ -261,7 +261,7 @@ int on_frame_recv_callback
reqpath += "://"; reqpath += "://";
reqpath += http2::value_to_str(host); reqpath += http2::value_to_str(host);
reqpath += http2::value_to_str(path); reqpath += http2::value_to_str(path);
downstream->set_request_path(reqpath); downstream->set_request_path(std::move(reqpath));
} else { } else {
downstream->set_request_path(http2::value_to_str(path)); downstream->set_request_path(http2::value_to_str(path));
} }

View File

@ -204,7 +204,7 @@ void on_ctrl_recv_callback
reqpath += "://"; reqpath += "://";
reqpath += host; reqpath += host;
reqpath += path; reqpath += path;
downstream->set_request_path(reqpath); downstream->set_request_path(std::move(reqpath));
} else { } else {
downstream->set_request_path(path); downstream->set_request_path(path);
} }