a bit better way to treah handlers
This commit is contained in:
parent
f0d205dee7
commit
3fe6d25448
16 changed files with 291 additions and 95 deletions
|
@ -15,23 +15,25 @@ constexpr std::array<std::string_view, static_cast<uint8_t>(Response::ContentTyp
|
|||
"Content-type: application/json"
|
||||
};
|
||||
|
||||
Response::Response():
|
||||
Response::Response(Request& request):
|
||||
request(request),
|
||||
status(Status::ok),
|
||||
type(ContentType::text),
|
||||
body()
|
||||
{}
|
||||
|
||||
Response::Response(Status status):
|
||||
Response::Response(Request& request, Status status):
|
||||
request(request),
|
||||
status(status),
|
||||
type(ContentType::text),
|
||||
body()
|
||||
{}
|
||||
|
||||
void Response::replyTo(Request& request) const {
|
||||
void Response::send() const {
|
||||
// OStream out = status == Status::ok ?
|
||||
// request.getOutputStream() :
|
||||
// request.getErrorStream();
|
||||
OStream out = request.getOutputStream();
|
||||
OStream out = request.getOutputStream(this);
|
||||
|
||||
out << statusCodes[static_cast<uint8_t>(status)];
|
||||
if (!body.empty())
|
||||
|
@ -40,6 +42,8 @@ void Response::replyTo(Request& request) const {
|
|||
<< '\n'
|
||||
<< '\n'
|
||||
<< body;
|
||||
|
||||
request.responseIsComplete(this);
|
||||
}
|
||||
|
||||
void Response::setBody(const std::string& body) {
|
||||
|
|
|
@ -27,14 +27,15 @@ public:
|
|||
json,
|
||||
__size
|
||||
};
|
||||
Response();
|
||||
Response(Status status);
|
||||
Response(Request& request);
|
||||
Response(Request& request, Status status);
|
||||
|
||||
void replyTo(Request& request) const;
|
||||
void send() const;
|
||||
void setBody(const std::string& body);
|
||||
void setBody(const nlohmann::json& body);
|
||||
|
||||
private:
|
||||
Request& request;
|
||||
Status status;
|
||||
ContentType type;
|
||||
std::string body;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue