// // 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& captureData); void SetCapturePeriod(uint32_t capturePeriod); void SetCounterIds(std::vector& counterIds); uint32_t GetCapturePeriod() const; std::vector GetCounterIds() const; private: uint32_t m_CapturePeriod; std::vector m_CounterIds; }; class Holder { public: Holder() : m_CaptureData() {}; CaptureData GetCaptureData() const; void SetCaptureData(uint32_t capturePeriod, std::vector& counterIds); private: mutable std::mutex m_CaptureThreadMutex; CaptureData m_CaptureData; }; } // namespace profiling } // namespace armnn