static void reports(void) { FILE * F; ql_iter fli; _mkdir("reports"); for (fli = qli_init(&factions); qli_more(fli);) { faction * f = (faction *)qli_next(&fli); cJSON * json; char buf[256]; stream strm; sprintf(buf, "reports/%d-%d.json", turn, f->no); fstream_init(&strm, fopen(buf, "w")); json = json_report(f); json_write(json, &strm); cJSON_Delete(json); fstream_done(&strm); report(f); } F = fopen("send", "w"); puts("Writing send file..."); for (fli = qli_init(&factions); qli_more(fli);) { faction * f = (faction *)qli_next(&fli); const char * addr = faction_getaddr(f); if (addr) { fprintf(F, "mail %d-%d.r\n", turn, f->no); fprintf(F, "in%%\"%s\"\n", addr); fprintf(F, "Atlantis Report for %s\n", gamedate()); } } fclose(F); F = fopen("maillist", "w"); puts("Writing maillist file..."); for (fli = qli_init(&factions); qli_more(fli);) { faction * f = (faction *)qli_next(&fli); const char * addr = faction_getaddr(f); if (addr) { fprintf(F, "%s\n", addr); } } fclose(F); }
static void test_json_report(CuTest * tc) { region * r; faction * f; unit * u; cJSON * json; cleargame(true); turn = 0; r = create_region(0, 1, 1, create_terrain("plain")); f = addplayer(r, 0, 0); u = r->units; update_world(0, 0, 1, 1); json = json_report(f); CuAssertIntEquals(tc, turn, cJSON_GetObjectItem(json, "turn")->valueint); free(json); }
void spawner_new_c::print_report() { if (runners.empty()) { std::string report = "Error: " + get_error_text(); maybe_write_to_file(base_options.report_file, report); if (!base_options.hide_report) std::cout << report; return; } rapidjson::StringBuffer s; rapidjson::PrettyWriter<rapidjson::StringBuffer, rapidjson::UTF16<> > report_writer(s); report_writer.StartArray(); for (auto i : runners) { report_class rep = i->get_report(); options_class options_item = i->get_options(); std::cout.flush(); if (!options_item.hide_report || options_item.report_file.length()) { std::string report; json_report(i, report_writer); if (options_item.login.length() > 0) { pull_shm_report(options_item.shared_memory.c_str(), report); } if (report.length() == 0) { if (!options_item.json) { report = GenerateSpawnerReport( rep, options_item, i->get_restrictions() ); } else { rapidjson::StringBuffer sub_report; rapidjson::PrettyWriter<rapidjson::StringBuffer, rapidjson::UTF16<> > report_item_writer(sub_report); report_item_writer.StartArray(); json_report(i, report_item_writer); report_item_writer.EndArray(); report = sub_report.GetString(); } } if (options_item.delegated) { push_shm_report(options_item.shared_memory.c_str(), report); } else { if (!options_item.hide_report && runners.size() == 1) { std::cout << report; } maybe_write_to_file(options_item.report_file, report); } } } report_writer.EndArray(); if (base_options.json && runners.size() > 1) { std::string report = s.GetString(); maybe_write_to_file(base_options.report_file, report); if (!base_options.hide_report) { std::cout << report; } } }
void spawner_new_c::print_report() { rapidjson::StringBuffer s; rapidjson::PrettyWriter<rapidjson::StringBuffer, rapidjson::UTF16<> > report_writer(s); report_writer.StartArray(); for (auto i = runners.begin(); i != runners.end(); i++) { report_class rep = (*i)->get_report(); options_class options_item = (*i)->get_options(); std::cout.flush(); if (!options_item.hide_report || options_item.report_file.length()) { std::string report; json_report(*i, report_writer); if (options_item.login.length() > 0) { pull_shm_report(options_item.shared_memory.c_str(), report); } if (report.length() == 0) { if (!options_item.json) { report = GenerateSpawnerReport( rep, options_item, (*i)->get_restrictions() ); } else { rapidjson::StringBuffer sub_report; rapidjson::PrettyWriter<rapidjson::StringBuffer, rapidjson::UTF16<> > report_item_writer(sub_report); report_item_writer.StartArray(); json_report(*i, report_item_writer); report_item_writer.EndArray(); report = sub_report.GetString(); } } if (options_item.delegated) { push_shm_report(options_item.shared_memory.c_str(), report); } else { if (!options_item.hide_report && runners.size() == 1) { std::cout << report; } if (options_item.report_file.length()) { std::ofstream fo(options_item.report_file.c_str()); fo << report; fo.close(); } } } } report_writer.EndArray(); if (base_options.json && runners.size() > 1) { std::string report = s.GetString(); if (base_options.report_file.length()) { std::ofstream fo(base_options.report_file.c_str()); fo << report; fo.close(); } if (!base_options.hide_report) { std::cout << report; } } }