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; }
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) ); }); }
// 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; }
void CottonJSONLogger::result(const std::vector<std::pair<std::string, std::string>>& res) { result_ = to_json_obj(res); }