diff options
Diffstat (limited to 'src/armnn/JsonPrinter.hpp')
-rw-r--r-- | src/armnn/JsonPrinter.hpp | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/src/armnn/JsonPrinter.hpp b/src/armnn/JsonPrinter.hpp index 12a0891a97..04f56b0134 100644 --- a/src/armnn/JsonPrinter.hpp +++ b/src/armnn/JsonPrinter.hpp @@ -8,16 +8,23 @@ #include <ostream> #include <string.h> #include <map> +#include <set> #include "Instrument.hpp" namespace armnn { +enum class JsonObjectType +{ + Measurement, + Event +}; + struct JsonChildObject { JsonChildObject(const std::string& label) - : m_Label(label), m_Unit(Measurement::Unit::TIME_MS) + : m_Label(label), m_Unit(Measurement::Unit::TIME_MS), m_Type(JsonObjectType::Event) {} JsonChildObject(const JsonChildObject&) = default; @@ -31,7 +38,7 @@ struct JsonChildObject m_Children.push_back(childObject); } - JsonChildObject GetChild(const unsigned int index) + JsonChildObject& GetChild(const unsigned int index) { return m_Children[index]; } @@ -41,10 +48,26 @@ struct JsonChildObject m_Unit = unit; } + size_t NumChildren() const + { + return m_Children.size(); + } + + void SetType(JsonObjectType type) + { + m_Type = type; + } + + JsonObjectType GetType() const + { + return m_Type; + } + ~JsonChildObject() = default; std::string m_Label; Measurement::Unit m_Unit; + JsonObjectType m_Type; std::vector<double> m_Measurements; std::vector<JsonChildObject> m_Children; @@ -55,14 +78,15 @@ private: class JsonPrinter { public: - void PrintJsonChildObject(const JsonChildObject& object); + void PrintJsonChildObject(const JsonChildObject& object, size_t& id); void PrintHeader(); void PrintArmNNHeader(); void PrintFooter(); void PrintSeparator(); void PrintNewLine(); - void PrintLabel(const std::string& label); + void PrintLabel(const std::string& label, size_t id); void PrintUnit(armnn::Measurement::Unit unit); + void PrintType(armnn::JsonObjectType type); void PrintMeasurementsList(const std::vector<double>& measurementsVector); public: @@ -71,6 +95,7 @@ public: {} private: + std::string MakeKey(const std::string& label, size_t id); void PrintTabs(); void DecrementNumberOfTabs(); void IncrementNumberOfTabs(); |