2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // See LICENSE file in the project root for full license information.
12 #include "Instrument.hpp"
17 struct JsonChildObject
19 JsonChildObject(const std::string& label)
20 : m_Label(label), m_Unit(Measurement::Unit::TIME_MS)
22 JsonChildObject(const JsonChildObject&) = default;
24 void AddMeasurement(const double measurement)
26 m_Measurements.push_back(measurement);
29 void AddChild(const JsonChildObject& childObject)
31 m_Children.push_back(childObject);
34 JsonChildObject GetChild(const unsigned int index)
36 return m_Children[index];
39 void SetUnit(const Measurement::Unit unit)
44 ~JsonChildObject() = default;
47 Measurement::Unit m_Unit;
48 std::vector<double> m_Measurements;
49 std::vector<JsonChildObject> m_Children;
52 JsonChildObject() = delete;
58 void PrintJsonChildObject(const JsonChildObject& object);
60 void PrintArmNNHeader();
62 void PrintSeparator();
64 void PrintLabel(const std::string& label);
65 void PrintUnit(armnn::Measurement::Unit unit);
66 void PrintMeasurementsList(const std::vector<double>& measurementsVector);
69 JsonPrinter(std::ostream &outputStream)
70 : m_OutputStream(outputStream), m_NumTabs(0)
75 void DecrementNumberOfTabs();
76 void IncrementNumberOfTabs();
78 std::ostream &m_OutputStream;
79 unsigned int m_NumTabs;