Newer
Older
using namespace std;
string JSON::Error = "";
string JSON::SeparateRows = "}, \n";
string JSON::SeparateSubRows = ", \n";
string JSON::FinishRows = "}\n\t}";
string JSON::FinishSubRows = "}";
string JSON::Finish = "}\n";
string JSON::StartRow(const string& name)
{
string row = "\n{ \"" + name + "\" : ";
return row;
}
string JSON::StartSubRow(const string& name)
{
string row = "\t\t\"" + name + "\" : ";
return row;
}
string JSON::StartTypedBlock(const string& name)
{
string row = "\n\t\"" + name + "\" : \n\t{ \n";
return row;
}
ostringstream StrTSValue;
StrTSValue << Val << scientific;
string NumberAsString = StrTSValue.str();
bool JSON::GenerateRow(EventData Event, string &ResRow, const string& EndRowJSON)
{
string EventModeName = JSON::StartSubRow("Event mode") + "\"" + Event.GetEventModeName() + "\"" + JSON::SeparateSubRows;
string FullElapsedTime = JSON::StartSubRow(string("Full elapsed time")) + Number2String(Event.elapsed_time) + JSON::SeparateSubRows;
string MeanElapsedTime = JSON::StartSubRow(string("Mean elapsed time")) + Number2String(mean_elapsed) + JSON::SeparateSubRows;
string TimeSeries = JSON::StartSubRow(string("Time series")) + "[";
int TimeSeriesLen = Event.time_series.size();
for (int i = 0; i < TimeSeriesLen - 1; i++)
{
// ostringstream StrTSValue;
// StrTSValue << Event.time_series[i];
// string strObj = StrTSValue.str();
// // printf("Event.time_series[i] = %e, AccurateValue %s\n", Event.time_series[i], AccurateValue);
// TimeSeries += strObj + ", ";
TimeSeries += Number2String(Event.time_series[i]) + ", ";
// ostringstream StrTSValue;
// StrTSValue << Event.time_series[TimeSeriesLen - 1];
// string strObj = StrTSValue.str();
TimeSeries += Number2String(Event.time_series[TimeSeriesLen - 1]);
string JSONrow = JSON::StartSubRow(Event.event_name) + "{" + EventModeName + FullElapsedTime + MeanElapsedTime + TimeSeries + EndRowJSON;
ResRow = JSONrow;
return true;
}
bool JSON::WriteOutput(const string& Filename, const string& OutputData)
{
ofstream file;
if (!file)
{
string error_definition = "Can't open file " + Filename + "\n";
JSON::Error = error_definition;
return false;
}
file << OutputData;