blob: 06600807f01402f32289adc24a5ae1712500d2e7 [file] [log] [blame]
Francis Murtagh68f78d82019-09-04 16:42:29 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
Finn Williams032bc742020-02-12 11:02:34 +00006#include <armnn/BackendId.hpp>
Francis Murtagh68f78d82019-09-04 16:42:29 +01007#include "Holder.hpp"
8
Cathal Corbett5aa9fd72022-02-25 15:33:28 +00009namespace arm
Francis Murtagh68f78d82019-09-04 16:42:29 +010010{
11
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000012namespace pipe
Francis Murtagh68f78d82019-09-04 16:42:29 +010013{
14
Matteo Martincighe8485382019-10-10 14:08:21 +010015CaptureData& CaptureData::operator=(const CaptureData& other)
Francis Murtagh68f78d82019-09-04 16:42:29 +010016{
Finn Williams032bc742020-02-12 11:02:34 +000017 m_CapturePeriod = other.m_CapturePeriod;
18 m_CounterIds = other.m_CounterIds;
19 m_ActiveBackends = other.m_ActiveBackends;
Francis Murtagh68f78d82019-09-04 16:42:29 +010020
21 return *this;
22}
23
Finn Williams032bc742020-02-12 11:02:34 +000024void CaptureData::SetActiveBackends(const std::set<armnn::BackendId>& activeBackends)
25{
26 m_ActiveBackends = activeBackends;
27}
28
Francis Murtagh68f78d82019-09-04 16:42:29 +010029void CaptureData::SetCapturePeriod(uint32_t capturePeriod)
30{
31 m_CapturePeriod = capturePeriod;
32}
33
Jim Flynn8355ec92019-09-17 12:29:50 +010034void CaptureData::SetCounterIds(const std::vector<uint16_t>& counterIds)
Francis Murtagh68f78d82019-09-04 16:42:29 +010035{
36 m_CounterIds = counterIds;
37}
38
Finn Williams032bc742020-02-12 11:02:34 +000039const std::set<armnn::BackendId>& CaptureData::GetActiveBackends() const
40{
41 return m_ActiveBackends;
42}
43
Matteo Martincighe8485382019-10-10 14:08:21 +010044uint32_t CaptureData::GetCapturePeriod() const
Francis Murtagh68f78d82019-09-04 16:42:29 +010045{
46 return m_CapturePeriod;
47}
48
Matteo Martincighe8485382019-10-10 14:08:21 +010049const std::vector<uint16_t>& CaptureData::GetCounterIds() const
Francis Murtagh68f78d82019-09-04 16:42:29 +010050{
51 return m_CounterIds;
52}
53
54CaptureData Holder::GetCaptureData() const
55{
56 std::lock_guard<std::mutex> lockGuard(m_CaptureThreadMutex);
Matteo Martincighe8485382019-10-10 14:08:21 +010057
Francis Murtagh68f78d82019-09-04 16:42:29 +010058 return m_CaptureData;
59}
60
James Conroy2dcd3fe2020-02-06 18:34:52 +000061bool CaptureData::IsCounterIdInCaptureData(uint16_t counterId)
62{
63 for (auto m_CounterId : m_CounterIds) {
64 if (m_CounterId == counterId)
65 {
66 return true;
67 }
68 }
69
70 // Return false by default unless counterId is found
71 return false;
72}
73
Finn Williams032bc742020-02-12 11:02:34 +000074void Holder::SetCaptureData(uint32_t capturePeriod,
75 const std::vector<uint16_t>& counterIds,
76 const std::set<armnn::BackendId>& activeBackends)
Francis Murtagh68f78d82019-09-04 16:42:29 +010077{
78 std::lock_guard<std::mutex> lockGuard(m_CaptureThreadMutex);
Matteo Martincighe8485382019-10-10 14:08:21 +010079
Francis Murtagh68f78d82019-09-04 16:42:29 +010080 m_CaptureData.SetCapturePeriod(capturePeriod);
81 m_CaptureData.SetCounterIds(counterIds);
Finn Williams032bc742020-02-12 11:02:34 +000082 m_CaptureData.SetActiveBackends(activeBackends);
83
Francis Murtagh68f78d82019-09-04 16:42:29 +010084}
85
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000086} // namespace pipe
Francis Murtagh68f78d82019-09-04 16:42:29 +010087
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000088} // namespace arm