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(Http &&) noexcept; Http(Http&&)=default;
Http(const Http &); Http(const Http&)= default;
Http &operator=(const Http &)=default;
Http &operator=(Http &&)=default;
virtual ~Http() = default; virtual ~Http() = default;
/*! /*!
* Parse a raw request or response from a string * Parse a raw request or response from a string
* into the object. * into the object.

View File

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

View File

@ -16,9 +16,11 @@ namespace fr
{ {
public: public:
//Constructors //Constructors
HttpResponse() HttpResponse()=default;
: header_ended(false), HttpResponse(HttpResponse&&)=default;
content_length(0){} HttpResponse(const HttpResponse&)= default;
HttpResponse &operator=(const HttpResponse &)=default;
HttpResponse &operator=(HttpResponse &&)=default;
virtual ~HttpResponse() = default; virtual ~HttpResponse() = default;
/*! /*!
@ -46,8 +48,8 @@ namespace fr
bool parse_header(size_t header_end_pos); bool parse_header(size_t header_end_pos);
//State //State
bool header_ended; bool header_ended{false};
size_t content_length; 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 Http::RequestType Http::get_type() const
{ {
return request_type; return request_type;
@ -210,7 +187,10 @@ namespace fr
and_pos = str.find('&', read_index); and_pos = str.find('&', read_index);
if(and_pos == std::string::npos) 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; break;
} }