From ad74ce8412eea2c554b048e379b9ca145d9694c6 Mon Sep 17 00:00:00 2001 From: Dennis Brentjes Date: Mon, 12 Dec 2016 11:29:33 +0100 Subject: Adds the StatsDaemon to the run script and made it output to file. --- statsd/stats.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'statsd/stats.cpp') diff --git a/statsd/stats.cpp b/statsd/stats.cpp index 9eeb140..cd66193 100644 --- a/statsd/stats.cpp +++ b/statsd/stats.cpp @@ -1,9 +1,14 @@ #include "stats.hpp" +#include + void Stats::accept_connection(std::unique_ptr&& socket) { auto it = connections.emplace(connections.end(), std::move(socket)); it->on_done([this, it](){ connections.erase(it); + if(connections.empty()) { + server.close(); + } }); it->async_receive([it, this](cmix_proto::CMixMessage const& message) { handle_message(it, message); @@ -47,3 +52,28 @@ Stats::Stats(ListenSettings lsettings) void Stats::run() { io_service.run(); } + +//Very inefficient... but easy. +void Stats::output(std::string file) +{ + for(auto table : data) { + std::ofstream ofs(file + "_" + table.first); + for(auto it = table.second.begin(); it != table.second.end(); ++it) { + if(it != table.second.begin()) { + ofs << ", "; + } + ofs << it->first; + } + ofs << std::endl; + for(int i = 0; i < table.second.begin()->second.size(); ++i) { + for(auto it = table.second.begin(); it != table.second.end(); ++it) { + if(it != table.second.begin()) { + ofs << ", "; + } + ofs << it->second[i]; + } + ofs << std::endl; + } + + } +} -- cgit v1.2.3-70-g09d2