Specified default move/copy constructors/operators to Http/Response/Request

This commit is contained in:
Fred Nicolson 2017-08-01 16:15:43 +01:00
parent 6ccd8489a7
commit cfda0f969e
4 changed files with 20 additions and 39 deletions

View File

@ -83,10 +83,13 @@ namespace fr
};
Http();
Http(Http &&) noexcept;
Http(const Http &);
Http(Http&&)=default;
Http(const Http&)= default;
Http &operator=(const Http &)=default;
Http &operator=(Http &&)=default;
virtual ~Http() = default;
/*!
* Parse a raw request or response from a string
* into the object.

View File

@ -17,14 +17,10 @@ namespace fr
public:
//Constructors
HttpRequest();
HttpRequest(HttpRequest &&other)=default;
HttpRequest &operator=(const HttpRequest &other)
{
header_ended = other.header_ended;
last_parsed_character = other.last_parsed_character;
content_length = other.content_length;
return *this;
}
HttpRequest(HttpRequest&&)=default;
HttpRequest(const HttpRequest&)= default;
HttpRequest &operator=(const HttpRequest &)=default;
HttpRequest &operator=(HttpRequest &&)=default;
virtual ~HttpRequest() = default;
/*!

View File

@ -16,9 +16,11 @@ namespace fr
{
public:
//Constructors
HttpResponse()
: header_ended(false),
content_length(0){}
HttpResponse()=default;
HttpResponse(HttpResponse&&)=default;
HttpResponse(const HttpResponse&)= default;
HttpResponse &operator=(const HttpResponse &)=default;
HttpResponse &operator=(HttpResponse &&)=default;
virtual ~HttpResponse() = default;
/*!
@ -46,8 +48,8 @@ namespace fr
bool parse_header(size_t header_end_pos);
//State
bool header_ended;
size_t content_length;
bool header_ended{false};
size_t content_length{0};
};
}

View File

@ -19,29 +19,6 @@ namespace fr
}
Http::Http(Http &&o) noexcept
: header_data(std::move(o.header_data)),
post_data(std::move(o.post_data)),
get_data(std::move(o.get_data)),
body(std::move(o.body)),
request_type(o.request_type),
uri(std::move(o.uri)),
status(o.status)
{
}
Http::Http(const Http &o)
: header_data(o.header_data),
post_data(o.post_data),
get_data(o.get_data),
body(o.body),
request_type(o.request_type),
uri(o.uri),
status(o.status)
{
}
Http::RequestType Http::get_type() const
{
return request_type;
@ -210,7 +187,10 @@ namespace fr
and_pos = str.find('&', read_index);
if(and_pos == std::string::npos)
{
list.emplace_back(str.substr(read_index, equal_pos - read_index), str.substr(equal_pos + 1, str.size() - equal_pos - 1));
size_t str_size = str.size();
while(str[str_size - 1] == '\n' || str[str_size - 1] == '\r')
--str_size;
list.emplace_back(str.substr(read_index, equal_pos - read_index), str.substr(equal_pos + 1, str_size - equal_pos - 1));
break;
}