diff options
author | ipknHama <ipknhama@gmail.com> | 2016-09-21 23:11:06 +0900 |
---|---|---|
committer | ipknHama <ipknhama@gmail.com> | 2016-09-21 23:11:06 +0900 |
commit | 3081e4e1a82a4efd8feff68850c4cc04af230cd7 (patch) | |
tree | 3ad16ef2e940abd2d47c4ac3ca224365387b7f37 /include/http_response.h | |
parent | 8b04940d2f28290451db439ad29155a0b8771ba3 (diff) | |
download | crow-3081e4e1a82a4efd8feff68850c4cc04af230cd7.tar.gz crow-3081e4e1a82a4efd8feff68850c4cc04af230cd7.zip |
Cleanup include folder into crow subfolder
- only crow.h is exposed now
Diffstat (limited to 'include/http_response.h')
-rw-r--r-- | include/http_response.h | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/include/http_response.h b/include/http_response.h deleted file mode 100644 index 23f312a..0000000 --- a/include/http_response.h +++ /dev/null @@ -1,128 +0,0 @@ -#pragma once -#include <string> -#include <unordered_map> -#include "json.h" -#include "http_request.h" -#include "ci_map.h" - -namespace crow -{ - template <typename Adaptor, typename Handler, typename ... Middlewares> - class Connection; - struct response - { - template <typename Adaptor, typename Handler, typename ... Middlewares> - friend class crow::Connection; - - int code{200}; - std::string body; - json::wvalue json_value; - - // `headers' stores HTTP headers. - ci_map headers; - - void set_header(std::string key, std::string value) - { - headers.erase(key); - headers.emplace(std::move(key), std::move(value)); - } - void add_header(std::string key, std::string value) - { - headers.emplace(std::move(key), std::move(value)); - } - - const std::string& get_header_value(const std::string& key) - { - return crow::get_header_value(headers, key); - } - - - response() {} - explicit response(int code) : code(code) {} - response(std::string body) : body(std::move(body)) {} - response(json::wvalue&& json_value) : json_value(std::move(json_value)) - { - json_mode(); - } - response(int code, std::string body) : code(code), body(std::move(body)) {} - response(const json::wvalue& json_value) : body(json::dump(json_value)) - { - json_mode(); - } - response(int code, const json::wvalue& json_value) : code(code), body(json::dump(json_value)) - { - json_mode(); - } - - response(response&& r) - { - *this = std::move(r); - } - - response& operator = (const response& r) = delete; - - response& operator = (response&& r) noexcept - { - body = std::move(r.body); - json_value = std::move(r.json_value); - code = r.code; - headers = std::move(r.headers); - completed_ = r.completed_; - return *this; - } - - bool is_completed() const noexcept - { - return completed_; - } - - void clear() - { - body.clear(); - json_value.clear(); - code = 200; - headers.clear(); - completed_ = false; - } - - void write(const std::string& body_part) - { - body += body_part; - } - - void end() - { - if (!completed_) - { - completed_ = true; - - if (complete_request_handler_) - { - complete_request_handler_(); - } - } - } - - void end(const std::string& body_part) - { - body += body_part; - end(); - } - - bool is_alive() - { - return is_alive_helper_ && is_alive_helper_(); - } - - private: - bool completed_{}; - std::function<void()> complete_request_handler_; - std::function<bool()> is_alive_helper_; - - //In case of a JSON object, set the Content-Type header - void json_mode() - { - set_header("Content-Type", "application/json"); - } - }; -} |