summaryrefslogtreecommitdiff
path: root/runtimes/neurun/src/dumper/dot/DotBuilder.h
diff options
context:
space:
mode:
authorChunseok Lee <chunseok.lee@samsung.com>2019-01-08 17:36:34 +0900
committerChunseok Lee <chunseok.lee@samsung.com>2019-01-08 17:36:34 +0900
commitbd11b24234d7d43dfe05a81c520aa01ffad06e42 (patch)
tree57d0d4044977e4fa0e50cd9ba40b32006dff19eb /runtimes/neurun/src/dumper/dot/DotBuilder.h
parent91f4ba45449f700a047a4aeea00b1a7c84e94c75 (diff)
downloadnnfw-bd11b24234d7d43dfe05a81c520aa01ffad06e42.tar.gz
nnfw-bd11b24234d7d43dfe05a81c520aa01ffad06e42.tar.bz2
nnfw-bd11b24234d7d43dfe05a81c520aa01ffad06e42.zip
Imported Upstream version 0.3upstream/0.3
Diffstat (limited to 'runtimes/neurun/src/dumper/dot/DotBuilder.h')
-rw-r--r--runtimes/neurun/src/dumper/dot/DotBuilder.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/runtimes/neurun/src/dumper/dot/DotBuilder.h b/runtimes/neurun/src/dumper/dot/DotBuilder.h
new file mode 100644
index 000000000..783e92b80
--- /dev/null
+++ b/runtimes/neurun/src/dumper/dot/DotBuilder.h
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NEURUN_DUMPER_DOT_DOT_BUILDER_H__
+#define __NEURUN_DUMPER_DOT_DOT_BUILDER_H__
+
+#include <sstream>
+
+#include "model/operation/Index.h"
+#include "model/operand/Index.h"
+
+#include "model/operation/Node.h"
+#include "model/operand/Object.h"
+
+#include "DotNodeInfo.h"
+#include "DotOperandInfo.h"
+
+using Node = neurun::model::operation::Node;
+using Object = neurun::model::operand::Object;
+
+namespace neurun
+{
+namespace dumper
+{
+namespace dot
+{
+
+class NodeAttr
+{
+public:
+ NodeAttr() = default;
+
+public:
+ void finish();
+ NodeAttr &addAttr(const std::string &name, const std::string &attr);
+
+public:
+ std::stringbuf *attr_stream() { return _attr_stream.rdbuf(); }
+
+private:
+ std::vector<std::pair<std::string, std::string>> _attrs;
+ std::stringstream _attr_stream;
+};
+
+class DotBuilder
+{
+public:
+ DotBuilder();
+
+public:
+ void update(const IDotInfo &dotinfo);
+
+ void writeDot(std::ostream &os);
+
+private:
+ void addNode(const IDotInfo &dotinfo);
+ void addEdge(const IDotInfo &dotinfo1, const IDotInfo &dotinfo2);
+
+ std::stringstream _dot;
+};
+
+} // namespace dot
+} // namespace dumper
+} // namespace neurun
+
+#endif // __NEURUN_DUMPER_DOT_DOT_BUILDER_H__