PicoScenes API Docs
 
Loading...
Searching...
No Matches
DSPRateTracker.hxx
Go to the documentation of this file.
1//
2// Created by Zhiping Jiang on 5/16/21.
3//
4
5#ifndef PICOSCENES_PLATFORM_DSPRATETRACKER_HXX
6#define PICOSCENES_PLATFORM_DSPRATETRACKER_HXX
7
8#include <chrono>
9#include "LoggingService.hxx"
10
11class [[maybe_unused]] DSPRateTracker {
12public:
13 static std::shared_ptr<DSPRateTracker> getInstance(const std::string &trackerName);
14
15 DSPRateTracker() = delete;
16
17 void reset();
18
19 [[maybe_unused]] void tick(double numSignals);
20
21 [[maybe_unused]] void tock();
22
23 [[maybe_unused]] [[nodiscard]] double getProcessingRate() const;
24
25 [[maybe_unused]] [[nodiscard]] std::string getDisplayString() const;
26
27private:
28 explicit DSPRateTracker(const std::string &trackerName);
29
30 std::string trackerName;
31
32 double signalCount = 0;
33
34 std::chrono::system_clock::time_point tickTime;
35
36 double processingTime = 0;
37
38 double processingRate = 0;
39
40};
41
42
43#endif //PICOSCENES_PLATFORM_DSPRATETRACKER_HXX
static std::shared_ptr< DSPRateTracker > getInstance(const std::string &trackerName)
double getProcessingRate() const
std::string getDisplayString() const
void tick(double numSignals)
DSPRateTracker()=delete