// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include #include namespace armnn { namespace profiling { class CaptureData { public: CaptureData() : m_CapturePeriod(0) , m_CounterIds() {} CaptureData(uint32_t capturePeriod, std::vector& counterIds) : m_CapturePeriod(capturePeriod) , m_CounterIds(counterIds) {} CaptureData(const CaptureData& captureData) : m_CapturePeriod(captureData.m_CapturePeriod) , m_CounterIds(captureData.m_CounterIds) {} CaptureData& operator=(const CaptureData& other); void SetCapturePeriod(uint32_t capturePeriod); void SetCounterIds(const std::vector& counterIds); uint32_t GetCapturePeriod() const; const std::vector& GetCounterIds() const; bool IsCounterIdInCaptureData(uint16_t counterId); private: uint32_t m_CapturePeriod; std::vector m_CounterIds; }; class Holder { public: Holder() : m_CaptureData() {} CaptureData GetCaptureData() const; void SetCaptureData(uint32_t capturePeriod, const std::vector& counterIds); private: mutable std::mutex m_CaptureThreadMutex; CaptureData m_CaptureData; }; } // namespace profiling } // namespace armnn