Skip to content
Snippets Groups Projects
Commit 9f1de535 authored by Radovan Červený's avatar Radovan Červený
Browse files

introduced a way of printing results

parent c07ddf86
No related branches found
No related tags found
1 merge request!14BP_cervera3 - new measurements
......@@ -5,6 +5,7 @@
#ifndef MEASUREMENT_ENGINE_HPP_
#define MEASUREMENT_ENGINE_HPP_
 
#include <ostream>
#include "MeasurementTypes.hpp"
 
namespace measurements {
......@@ -13,7 +14,11 @@ class MeasurementEngine {
public:
virtual void push_measurement_frame ( std::string, measurements::Type ) = 0;
virtual void pop_measurement_frame ( ) = 0;
virtual void get_results ( ) = 0;
virtual void print_as_list ( std::ostream & ) = 0;
virtual void print_as_tree ( std::ostream & ) = 0;
virtual void print_as_xml ( std::ostream & ) = 0;
virtual ~MeasurementEngine ( ) = default;
};
 
......
......@@ -40,9 +40,9 @@ void Measurements::end ( ) {
me->pop_measurement_frame ( );
}
 
void Measurements::print ( ) {
void Measurements::print ( std::ostream & os ) {
for ( auto me : INSTANCE.measurement_engines )
me->get_results ( );
me->print_as_list ( os );
}
 
}
......@@ -5,12 +5,12 @@
#ifndef MEASUREMENTS_HPP_
#define MEASUREMENTS_HPP_
 
#include <ostream>
#include <string>
#include <vector>
#include "MeasurementTypes.hpp"
#include "MeasurementEngine.hpp"
 
namespace measurements {
 
class Measurements {
......@@ -26,7 +26,7 @@ private:
public:
static void start ( std::string, measurements::Type );
static void end ( );
static void print ( );
static void print ( std::ostream & );
};
 
}
......
......@@ -34,16 +34,26 @@ void TimeMeasurementEngine::pop_measurement_frame ( ) {
results.emplace_back ( std::move ( current_frame ) );
}
 
void TimeMeasurementEngine::get_results ( ) {
for ( auto frame : results ) {
std::cout << frame.frame_name << std::endl;
std::cout << frame.duration << ' ' << frame.real_duration << std::endl;
void TimeMeasurementEngine::print_as_list ( std::ostream & os ) {
print_as_list ( os, results.size ( ) - 1 );
os << std::endl;
}
 
for ( unsigned idx : frame.sub_frames )
std::cout << idx << ' ';
void TimeMeasurementEngine::print_as_list ( std::ostream & os, unsigned idx ) {
TimeMeasurementFrame & tmf = results[idx];
 
std::cout << std::endl;
}
if ( idx != results.size ( ) - 1 ) os << ", ";
os << std::make_tuple ( idx, tmf.frame_name, ( unsigned ) tmf.frame_type, tmf.duration, tmf.real_duration, tmf.sub_frames );
for ( unsigned sub_idx : tmf.sub_frames )
print_as_list ( os, sub_idx );
}
void TimeMeasurementEngine::print_as_tree ( std::ostream & ) {
}
void TimeMeasurementEngine::print_as_xml ( std::ostream & ) {
}
 
}
......@@ -8,6 +8,7 @@
#include <string>
#include <chrono>
#include <vector>
#include <ostream>
#include "MeasurementEngine.hpp"
 
namespace measurements {
......@@ -27,10 +28,15 @@ private:
std::vector < TimeMeasurementFrame > frames;
std::vector < TimeMeasurementFrame > results;
 
void print_as_list ( std::ostream &, unsigned );
public:
void push_measurement_frame ( std::string, measurements::Type );
void pop_measurement_frame ( );
void get_results ( );
void print_as_list ( std::ostream & );
void print_as_tree ( std::ostream & );
void print_as_xml ( std::ostream & );
};
 
}
......
......@@ -36,5 +36,6 @@ void MeasurementsTest::testMeasurements ( ) {
std::this_thread::sleep_for ( std::chrono::milliseconds ( 80 ) );
measurements::Measurements::end ( );
measurements::Measurements::end ( );
measurements::Measurements::print ( );
measurements::Measurements::print ( std::cout );
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment