2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // See LICENSE file in the project root for full license information.
6 #include "JsonPrinter.hpp"
14 void JsonPrinter::PrintJsonChildObject(const JsonChildObject& object)
16 PrintLabel(object.m_Label);
17 PrintMeasurementsList(object.m_Measurements);
20 PrintUnit(object.m_Unit);
22 if (!object.m_Children.empty())
26 for (unsigned int childIndex = 0; childIndex < object.m_Children.size(); ++childIndex)
28 PrintJsonChildObject(object.m_Children[childIndex]);
29 // Only print separator and new line if current child is not the last element.
30 if (&object.m_Children[childIndex] != &object.m_Children.back())
41 void JsonPrinter::PrintHeader()
43 m_OutputStream << "{" << std::endl;
44 IncrementNumberOfTabs();
47 void JsonPrinter::PrintArmNNHeader()
50 m_OutputStream << R"("ArmNN": {)" << std::endl;
51 IncrementNumberOfTabs();
54 void JsonPrinter::PrintLabel(const std::string& label)
57 m_OutputStream << R"(")" << label << R"(": {)" << std::endl;
58 IncrementNumberOfTabs();
61 void JsonPrinter::PrintUnit(armnn::Measurement::Unit unit)
64 m_OutputStream << R"("unit": ")";
65 m_OutputStream << armnn::Measurement::ToString(unit);
66 m_OutputStream << R"(")";
69 void JsonPrinter::PrintMeasurementsList(const std::vector<double>& measurementsVector)
71 if (measurementsVector.empty())
77 m_OutputStream << R"("raw": [)" << std::endl;
78 IncrementNumberOfTabs();
80 auto iter = measurementsVector.begin();
81 m_OutputStream << *iter;
82 for (iter = std::next(iter); iter != measurementsVector.end(); ++iter)
84 m_OutputStream << "," << std::endl;
86 m_OutputStream << *iter;
88 m_OutputStream << std::endl;
89 DecrementNumberOfTabs();
91 m_OutputStream << "]";
94 void JsonPrinter::PrintTabs()
96 unsigned int numTabs = m_NumTabs;
99 m_OutputStream << "\t";
103 void JsonPrinter::PrintSeparator()
105 m_OutputStream << ",";
108 void JsonPrinter::PrintNewLine()
110 m_OutputStream << std::endl;
113 void JsonPrinter::PrintFooter()
115 DecrementNumberOfTabs();
117 m_OutputStream << "}";
120 void JsonPrinter::DecrementNumberOfTabs()
129 void JsonPrinter::IncrementNumberOfTabs()