aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/JsonPrinter.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnn/JsonPrinter.hpp')
-rw-r--r--src/armnn/JsonPrinter.hpp39
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