示例#1
0
void CottonJSONLogger::write() {
    auto ew_converter = [] (const std::pair<int, std::string>& msg) {
        return to_json_obj("code", msg.first, "message", msg.second);
    };
    std::cout << to_json_obj(
        "result", result_,
        "errors", to_json_arr(errors, ew_converter),
        "warnings", to_json_arr(warnings, ew_converter)
    ) << std::endl;
}
示例#2
0
void CottonJSONLogger::result(const std::vector<std::tuple<std::string, int, std::vector<std::string>>>& res) {
    result_ = to_json_arr(res, [](const std::tuple<std::string, int, std::vector<std::string>>& v) {
        return to_json_obj(
            "name", std::get<0>(v),
            "overhead", std::get<1>(v),
            "features", std::get<2>(v)
        );
    });
}
示例#3
0
// Render the timer as JSON to be used in an HTTP request body.
// The JSON should take the form:
// {
//     "timing": {
//         "start-time": UInt64, // Wall-time in milliseconds - Deprecated in favor of "start-time-delta"
//         "start-time-delta": Int32, // Millisecond offset from current time
//         "sequence-number": Int,
//         "interval": Int,
//         "repeat-for": Int
//     },
//     "callback": {
//         "http": {
//             "uri": "string",
//             "opaque": "string"
//         }
//     },
//     "reliability": {
//         "cluster-view-id": "string",
//         "replicas": [
//             <comma separated "string"s>
//         ]
//     }
// }
std::string Timer::to_json()
{
  rapidjson::StringBuffer sb;
  rapidjson::Writer<rapidjson::StringBuffer> writer(sb);
  to_json_obj(&writer);

  std::string body = sb.GetString();
  TRC_DEBUG("Built replication body: %s", body.c_str());

  return body;
}
示例#4
0
void CottonJSONLogger::result(const std::vector<std::pair<std::string, std::string>>& res) {
    result_ = to_json_obj(res);
}