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 @@ ...@@ -5,6 +5,7 @@
#ifndef MEASUREMENT_ENGINE_HPP_ #ifndef MEASUREMENT_ENGINE_HPP_
#define MEASUREMENT_ENGINE_HPP_ #define MEASUREMENT_ENGINE_HPP_
   
#include <ostream>
#include "MeasurementTypes.hpp" #include "MeasurementTypes.hpp"
   
namespace measurements { namespace measurements {
...@@ -13,7 +14,11 @@ class MeasurementEngine { ...@@ -13,7 +14,11 @@ class MeasurementEngine {
public: public:
virtual void push_measurement_frame ( std::string, measurements::Type ) = 0; virtual void push_measurement_frame ( std::string, measurements::Type ) = 0;
virtual void pop_measurement_frame ( ) = 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; virtual ~MeasurementEngine ( ) = default;
}; };
   
......
...@@ -40,9 +40,9 @@ void Measurements::end ( ) { ...@@ -40,9 +40,9 @@ void Measurements::end ( ) {
me->pop_measurement_frame ( ); me->pop_measurement_frame ( );
} }
   
void Measurements::print ( ) { void Measurements::print ( std::ostream & os ) {
for ( auto me : INSTANCE.measurement_engines ) for ( auto me : INSTANCE.measurement_engines )
me->get_results ( ); me->print_as_list ( os );
} }
   
} }
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
#ifndef MEASUREMENTS_HPP_ #ifndef MEASUREMENTS_HPP_
#define MEASUREMENTS_HPP_ #define MEASUREMENTS_HPP_
   
#include <ostream>
#include <string> #include <string>
#include <vector> #include <vector>
#include "MeasurementTypes.hpp" #include "MeasurementTypes.hpp"
#include "MeasurementEngine.hpp" #include "MeasurementEngine.hpp"
   
namespace measurements { namespace measurements {
   
class Measurements { class Measurements {
...@@ -26,7 +26,7 @@ private: ...@@ -26,7 +26,7 @@ private:
public: public:
static void start ( std::string, measurements::Type ); static void start ( std::string, measurements::Type );
static void end ( ); static void end ( );
static void print ( ); static void print ( std::ostream & );
}; };
   
} }
......
...@@ -34,16 +34,26 @@ void TimeMeasurementEngine::pop_measurement_frame ( ) { ...@@ -34,16 +34,26 @@ void TimeMeasurementEngine::pop_measurement_frame ( ) {
results.emplace_back ( std::move ( current_frame ) ); results.emplace_back ( std::move ( current_frame ) );
} }
   
void TimeMeasurementEngine::get_results ( ) { void TimeMeasurementEngine::print_as_list ( std::ostream & os ) {
for ( auto frame : results ) { print_as_list ( os, results.size ( ) - 1 );
std::cout << frame.frame_name << std::endl; os << std::endl;
std::cout << frame.duration << ' ' << frame.real_duration << std::endl; }
   
for ( unsigned idx : frame.sub_frames ) void TimeMeasurementEngine::print_as_list ( std::ostream & os, unsigned idx ) {
std::cout << 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 @@ ...@@ -8,6 +8,7 @@
#include <string> #include <string>
#include <chrono> #include <chrono>
#include <vector> #include <vector>
#include <ostream>
#include "MeasurementEngine.hpp" #include "MeasurementEngine.hpp"
   
namespace measurements { namespace measurements {
...@@ -27,10 +28,15 @@ private: ...@@ -27,10 +28,15 @@ private:
std::vector < TimeMeasurementFrame > frames; std::vector < TimeMeasurementFrame > frames;
std::vector < TimeMeasurementFrame > results; std::vector < TimeMeasurementFrame > results;
   
void print_as_list ( std::ostream &, unsigned );
public: public:
void push_measurement_frame ( std::string, measurements::Type ); void push_measurement_frame ( std::string, measurements::Type );
void pop_measurement_frame ( ); 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 ( ) { ...@@ -36,5 +36,6 @@ void MeasurementsTest::testMeasurements ( ) {
std::this_thread::sleep_for ( std::chrono::milliseconds ( 80 ) ); std::this_thread::sleep_for ( std::chrono::milliseconds ( 80 ) );
measurements::Measurements::end ( ); measurements::Measurements::end ( );
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.
Finish editing this message first!
Please register or to comment