aboutsummaryrefslogtreecommitdiffstats
path: root/include/http_response.h
diff options
context:
space:
mode:
authoripknHama <ipknhama@gmail.com>2016-09-21 23:11:06 +0900
committeripknHama <ipknhama@gmail.com>2016-09-21 23:11:06 +0900
commit3081e4e1a82a4efd8feff68850c4cc04af230cd7 (patch)
tree3ad16ef2e940abd2d47c4ac3ca224365387b7f37 /include/http_response.h
parent8b04940d2f28290451db439ad29155a0b8771ba3 (diff)
downloadcrow-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.h128
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");
- }
- };
-}