|
|
|
@ -40,15 +40,16 @@ public: |
|
|
|
virtual ~basic_response(){} |
|
|
|
virtual ~basic_response(){} |
|
|
|
virtual void add_header(const http::header &header)=0; |
|
|
|
virtual void add_header(const http::header &header)=0; |
|
|
|
virtual void set_status(http::status code)=0; |
|
|
|
virtual void set_status(http::status code)=0; |
|
|
|
|
|
|
|
virtual void set_body(const std::string &content)=0; |
|
|
|
friend std::ostream& operator<<(std::ostream& os,const http::basic_response &rh){ return rh.do_response(os); } |
|
|
|
friend std::ostream& operator<<(std::ostream& os,const http::basic_response &rh){ return rh.do_response(os); } |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
class response : public basic_response { |
|
|
|
class response : public basic_response { |
|
|
|
public: |
|
|
|
public: |
|
|
|
response():status_code(http::http_code(http::ok)){} |
|
|
|
response():status_code(http::http_code(http::ok)){} |
|
|
|
|
|
|
|
void set_body(const std::string &content) override { body=content; } |
|
|
|
void add_header(const http::header &header) override { response_headers.emplace(header); } |
|
|
|
void add_header(const http::header &header) override { response_headers.emplace(header); } |
|
|
|
void set_status(http::status code) override { status_code=http_code(code); } |
|
|
|
void set_status(http::status code) override { status_code=http_code(code); } |
|
|
|
void set_body(std::string content) { body=content; } |
|
|
|
|
|
|
|
protected: |
|
|
|
protected: |
|
|
|
std::ostream& do_response(std::ostream &os) const override { |
|
|
|
std::ostream& do_response(std::ostream &os) const override { |
|
|
|
os << "HTTP/1.1" << " " << status_code.first << " " << status_code.second << "\r\n"; |
|
|
|
os << "HTTP/1.1" << " " << status_code.first << " " << status_code.second << "\r\n"; |
|
|
|
@ -87,6 +88,6 @@ public: |
|
|
|
} |
|
|
|
} |
|
|
|
void set_body(nlohmann::json json){ response::set_body(json.dump()); } |
|
|
|
void set_body(nlohmann::json json){ response::set_body(json.dump()); } |
|
|
|
}; |
|
|
|
}; |
|
|
|
};;; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
#endif // _TOREST_HTTP_HPP_
|
|
|
|
#endif // _TOREST_HTTP_HPP_
|
|
|
|
|