use inplace construction for Headers instead of explicit objects and copying

This commit is contained in:
Dennis Luxen 2014-06-09 17:54:46 +02:00
parent c7b90bac1a
commit 0af4e16c21

View File

@ -83,7 +83,7 @@ void Connection::handle_read(const boost::system::error_code &e, std::size_t byt
request.endpoint = TCP_socket.remote_endpoint().address(); request.endpoint = TCP_socket.remote_endpoint().address();
request_handler.handle_request(request, reply); request_handler.handle_request(request, reply);
Header compression_header; // Header compression_header;
std::vector<char> compressed_output; std::vector<char> compressed_output;
std::vector<boost::asio::const_buffer> output_buffer; std::vector<boost::asio::const_buffer> output_buffer;
@ -92,9 +92,7 @@ void Connection::handle_read(const boost::system::error_code &e, std::size_t byt
{ {
case deflateRFC1951: case deflateRFC1951:
//use deflate for compression //use deflate for compression
compression_header.name = "Content-Encoding"; reply.headers.insert(reply.headers.begin(), {"Content-Encoding", "deflate"});
compression_header.value = "deflate";
reply.headers.insert(reply.headers.begin(), compression_header);
compressBufferCollection(reply.content, compression_type, compressed_output); compressBufferCollection(reply.content, compression_type, compressed_output);
reply.setSize(compressed_output.size()); reply.setSize(compressed_output.size());
output_buffer = reply.HeaderstoBuffers(); output_buffer = reply.HeaderstoBuffers();
@ -102,9 +100,7 @@ void Connection::handle_read(const boost::system::error_code &e, std::size_t byt
break; break;
case gzipRFC1952: case gzipRFC1952:
//use gzip for compression //use gzip for compression
compression_header.name = "Content-Encoding"; reply.headers.insert(reply.headers.begin(), {"Content-Encoding", "gzip"});
compression_header.value = "gzip";
reply.headers.insert(reply.headers.begin(), compression_header);
compressBufferCollection(reply.content, compression_type, compressed_output); compressBufferCollection(reply.content, compression_type, compressed_output);
reply.setSize(compressed_output.size()); reply.setSize(compressed_output.size());
output_buffer = reply.HeaderstoBuffers(); output_buffer = reply.HeaderstoBuffers();