diff options
Diffstat (limited to 'src/armnn/JsonPrinter.hpp')
-rw-r--r-- | src/armnn/JsonPrinter.hpp | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/src/armnn/JsonPrinter.hpp b/src/armnn/JsonPrinter.hpp index 04f56b0134..4af1609ee3 100644 --- a/src/armnn/JsonPrinter.hpp +++ b/src/armnn/JsonPrinter.hpp @@ -5,12 +5,13 @@ #pragma once -#include <ostream> -#include <string.h> +#include <string> #include <map> #include <set> +#include <sstream> #include "Instrument.hpp" +#include "JsonUtils.hpp" namespace armnn { @@ -18,13 +19,15 @@ namespace armnn enum class JsonObjectType { Measurement, - Event + Event, + ExecObjectDesc }; struct JsonChildObject { + // Object type changes according to the JsonObjectType specified in enum JsonChildObject(const std::string& label) - : m_Label(label), m_Unit(Measurement::Unit::TIME_MS), m_Type(JsonObjectType::Event) + : m_Label(label), m_Unit(Measurement::Unit::TIME_MS), m_Type(JsonObjectType::Event) {} JsonChildObject(const JsonChildObject&) = default; @@ -33,6 +36,16 @@ struct JsonChildObject m_Measurements.push_back(measurement); } + void SetAndParseDetails(std::string layerDetailsStr) + { + std::stringstream layerDetails(layerDetailsStr); + std::string stringLine; + while (std::getline(layerDetails, stringLine, '\n')) + { + m_LayerDetailsList.push_back(stringLine); + } + } + void AddChild(const JsonChildObject& childObject) { m_Children.push_back(childObject); @@ -69,39 +82,31 @@ struct JsonChildObject Measurement::Unit m_Unit; JsonObjectType m_Type; std::vector<double> m_Measurements; + std::vector<std::string> m_LayerDetailsList; std::vector<JsonChildObject> m_Children; private: JsonChildObject() = delete; }; -class JsonPrinter +class JsonPrinter : public JsonUtils { public: void PrintJsonChildObject(const JsonChildObject& object, size_t& id); - void PrintHeader(); - void PrintArmNNHeader(); - void PrintFooter(); - void PrintSeparator(); - void PrintNewLine(); 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: - JsonPrinter(std::ostream &outputStream) - : m_OutputStream(outputStream), m_NumTabs(0) + JsonPrinter(std::ostream& outputStream) + : JsonUtils(outputStream), m_OutputStream(outputStream) {} private: std::string MakeKey(const std::string& label, size_t id); - void PrintTabs(); - void DecrementNumberOfTabs(); - void IncrementNumberOfTabs(); - std::ostream &m_OutputStream; - unsigned int m_NumTabs; + std::ostream& m_OutputStream; }; } // namespace armnn
\ No newline at end of file |