diff options
Diffstat (limited to 'libcmix-common/performanceclient.cpp')
| -rw-r--r-- | libcmix-common/performanceclient.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/libcmix-common/performanceclient.cpp b/libcmix-common/performanceclient.cpp new file mode 100644 index 0000000..70953a8 --- /dev/null +++ b/libcmix-common/performanceclient.cpp @@ -0,0 +1,29 @@ +#include "performanceclient.hpp" + +#include <boost/date_time.hpp> + +#include <memory> + +PerformanceClient::PerformanceClient(std::string name, boost::asio::io_service& io_service, std::string host, std::string port) +: node_name(name) +, sender(std::unique_ptr<boost::asio::ip::tcp::socket>(new boost::asio::ip::tcp::socket(io_service))) +, timer() +{ + timer.start(); + sender.async_connect(host, port, []{}); +} + +void PerformanceClient::send(std::string column) +{ + cmix_proto::Performance perf; + perf.set_node(node_name); + perf.set_column(column); + + auto tp = timer.elapsed(); + + perf.set_wall_time(std::to_string(tp.wall)); + perf.set_user_time(std::to_string(tp.user)); + perf.set_system_time(std::to_string(tp.system)); + + sender.async_send(perf); +} |
