From e819829560c10ab442bbd6c6e388c449cfdf5bd2 Mon Sep 17 00:00:00 2001 From: Daniel Krebs Date: Tue, 15 May 2018 14:48:49 +0200 Subject: [PATCH] directed-graph: add dumping to dot-file (graphviz) --- fpga/include/villas/directed_graph.hpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/fpga/include/villas/directed_graph.hpp b/fpga/include/villas/directed_graph.hpp index 0af3abf36..c2b92674a 100644 --- a/fpga/include/villas/directed_graph.hpp +++ b/fpga/include/villas/directed_graph.hpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include @@ -272,7 +273,7 @@ public: return false; } - void dump() + void dump(const std::string& fileName = "") { logger->info("Vertices:"); for(auto& v : vertices) { @@ -287,11 +288,29 @@ public: logger->info(" {} connected to: {}", *vertex, ssEdges.str()); } + std::fstream s(fileName, s.out | s.trunc); + if(s.is_open()) { + s << "digraph memgraph {" << std::endl; + } + logger->info("Edges:"); for(auto& e : edges) { auto& edge = e.second; logger->info(" {}: {} -> {}", *edge, edge->from, edge->to); + if(s.is_open()) { + auto from = getVertex(edge->from); + auto to = getVertex(edge->to); + + s << std::dec; + s << " \"" << *from << "\" -> \"" << *to << "\"" + << " [label=\"" << *edge << "\"];" << std::endl; + } + } + + if(s.is_open()) { + s << "}" << std::endl; + s.close(); } }