5 #include <rapidjson/document.h>
6 #include <rapidjson/stringbuffer.h>
7 #include <rapidjson/writer.h>
16 const std::string &msg,
int status_code, std::string context) {
17 const std::string response =
19 "Content-Type: application/json; charset=UTF-8\r\n"
22 if (context.empty()) {
23 session->
Send((
const uint8_t *)(response.c_str()),
24 response.length(), NULL);
26 session->
SendSession(context, (
const uint8_t *)(response.c_str()),
27 response.length(), NULL);
32 const std::string &error_msg,
int status_code, std::string context) {
33 contrail_rapidjson::Document document;
35 contrail_rapidjson::Value v;
36 document.AddMember(
"error",
37 v.SetString(error_msg.c_str(), document.GetAllocator()),
38 document.GetAllocator());
39 contrail_rapidjson::StringBuffer strbuf;
40 contrail_rapidjson::Writer<contrail_rapidjson::StringBuffer> writer(strbuf);
41 document.Accept(writer);
42 SendResponse(session, strbuf.GetString(), status_code, context);
void SendResponse(HttpSession *session, const std::string &msg, int status_code, std::string context)
virtual bool Send(const uint8_t *data, size_t size, size_t *sent)
static const std::string integerToString(const NumberType &num)
void SendErrorResponse(HttpSession *session, const std::string &error_msg, int status_code, std::string context)
static bool SendSession(std::string const &s, const uint8_t *data, size_t size, size_t *sent)