diff options
Diffstat (limited to 'src/profiling/PeriodicCounterCapture.hpp')
-rw-r--r-- | src/profiling/PeriodicCounterCapture.hpp | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/src/profiling/PeriodicCounterCapture.hpp b/src/profiling/PeriodicCounterCapture.hpp index 8a7ff37bf9..2e9ac364f1 100644 --- a/src/profiling/PeriodicCounterCapture.hpp +++ b/src/profiling/PeriodicCounterCapture.hpp @@ -5,13 +5,13 @@ #pragma once -#include "Holder.hpp" #include "IPeriodicCounterCapture.hpp" +#include "Holder.hpp" #include "Packet.hpp" -#include "IReadCounterValue.hpp" #include "SendCounterPacket.hpp" +#include "ICounterValues.hpp" -#include "WallClockTimer.hpp" +#include <WallClockTimer.hpp> #include <atomic> #include <chrono> @@ -27,20 +27,29 @@ namespace profiling class PeriodicCounterCapture final : public IPeriodicCounterCapture { public: - PeriodicCounterCapture(const Holder& data, ISendCounterPacket& packet, const IReadCounterValue& readCounterValue); + PeriodicCounterCapture(const Holder& data, ISendCounterPacket& packet, const IReadCounterValues& readCounterValue) + : m_CaptureDataHolder(data) + , m_IsRunning(false) + , m_KeepRunning(false) + , m_ReadCounterValues(readCounterValue) + , m_SendCounterPacket(packet) + {} + ~PeriodicCounterCapture() { Stop(); } void Start() override; - void Join(); + void Stop() override; + bool IsRunning() const { return m_IsRunning.load(); } private: CaptureData ReadCaptureData(); - void Functionality(const IReadCounterValue& readCounterValue); - - const Holder& m_CaptureDataHolder; - std::atomic<bool> m_IsRunning; - std::thread m_PeriodCaptureThread; - const IReadCounterValue& m_ReadCounterValue; - ISendCounterPacket& m_SendCounterPacket; + void Capture(const IReadCounterValues& readCounterValues); + + const Holder& m_CaptureDataHolder; + std::atomic<bool> m_IsRunning; + std::atomic<bool> m_KeepRunning; + std::thread m_PeriodCaptureThread; + const IReadCounterValues& m_ReadCounterValues; + ISendCounterPacket& m_SendCounterPacket; }; } // namespace profiling |