Line data Source code
1 : /*! 2 : * \file 3 : * \brief Class module::Probe_throughput. 4 : */ 5 : #ifndef PROBE_THROUGHPUT_HPP_ 6 : #define PROBE_THROUGHPUT_HPP_ 7 : 8 : #include <chrono> 9 : #include <string> 10 : #include <typeindex> 11 : #include <vector> 12 : 13 : #include "Module/Stateful/Probe/Probe.hpp" 14 : 15 : namespace spu 16 : { 17 : namespace module 18 : { 19 : class Probe_throughput : public Probe<uint8_t> 20 : { 21 : protected: 22 : std::chrono::time_point<std::chrono::steady_clock> t_start; 23 : size_t data_size; 24 : double thr; 25 : double factor; 26 : 27 : public: 28 : Probe_throughput(const size_t data_size, 29 : const std::string& col_name, 30 : const double factor, 31 : tools::Reporter_probe* reporter = nullptr); 32 : Probe_throughput(const size_t data_size, const std::string& col_name, tools::Reporter_probe* reporter = nullptr); 33 : Probe_throughput(const std::string& col_name, tools::Reporter_probe* reporter = nullptr); 34 : 35 0 : virtual ~Probe_throughput() = default; 36 : 37 : virtual void reset(); 38 : 39 : virtual void register_reporter(tools::Reporter_probe* reporter); 40 : 41 : protected: 42 : virtual void _probe(const uint8_t* in, const size_t frame_id); 43 : }; 44 : } 45 : } 46 : 47 : #endif /* PROBE_THROUGHPUT_HPP_ */