blob: 2fee6f994ae6dda05d27e0e111c6ada7a8d0f216 [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
Jim Flynn27761832022-03-20 21:52:17 +00006#include <client/include/Holder.hpp>
Francis Murtagh68f78d82019-09-04 16:42:29 +01007
Cathal Corbett5aa9fd72022-02-25 15:33:28 +00008namespace arm
Francis Murtagh68f78d82019-09-04 16:42:29 +01009{
10
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000011namespace pipe
Francis Murtagh68f78d82019-09-04 16:42:29 +010012{
13
Matteo Martincighe8485382019-10-10 14:08:21 +010014CaptureData& CaptureData::operator=(const CaptureData& other)
Francis Murtagh68f78d82019-09-04 16:42:29 +010015{
Finn Williams032bc742020-02-12 11:02:34 +000016 m_CapturePeriod = other.m_CapturePeriod;
17 m_CounterIds = other.m_CounterIds;
18 m_ActiveBackends = other.m_ActiveBackends;
Francis Murtagh68f78d82019-09-04 16:42:29 +010019
20 return *this;
21}
22
Cathal Corbett6f073722022-03-04 12:11:09 +000023void CaptureData::SetActiveBackends(const std::set<std::string>& activeBackends)
Finn Williams032bc742020-02-12 11:02:34 +000024{
25 m_ActiveBackends = activeBackends;
26}
27
Francis Murtagh68f78d82019-09-04 16:42:29 +010028void CaptureData::SetCapturePeriod(uint32_t capturePeriod)
29{
30 m_CapturePeriod = capturePeriod;
31}
32
Jim Flynn8355ec92019-09-17 12:29:50 +010033void CaptureData::SetCounterIds(const std::vector<uint16_t>& counterIds)
Francis Murtagh68f78d82019-09-04 16:42:29 +010034{
35 m_CounterIds = counterIds;
36}
37
Cathal Corbett6f073722022-03-04 12:11:09 +000038const std::set<std::string>& CaptureData::GetActiveBackends() const
Finn Williams032bc742020-02-12 11:02:34 +000039{
40 return m_ActiveBackends;
41}
42
Matteo Martincighe8485382019-10-10 14:08:21 +010043uint32_t CaptureData::GetCapturePeriod() const
Francis Murtagh68f78d82019-09-04 16:42:29 +010044{
45 return m_CapturePeriod;
46}
47
Matteo Martincighe8485382019-10-10 14:08:21 +010048const std::vector<uint16_t>& CaptureData::GetCounterIds() const
Francis Murtagh68f78d82019-09-04 16:42:29 +010049{
50 return m_CounterIds;
51}
52
53CaptureData Holder::GetCaptureData() const
54{
Jim Flynn870b96c2022-03-25 21:24:56 +000055#if !defined(ARMNN_DISABLE_THREADS)
Francis Murtagh68f78d82019-09-04 16:42:29 +010056 std::lock_guard<std::mutex> lockGuard(m_CaptureThreadMutex);
Jim Flynn870b96c2022-03-25 21:24:56 +000057#endif
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,
Cathal Corbett6f073722022-03-04 12:11:09 +000076 const std::set<std::string>& activeBackends)
Francis Murtagh68f78d82019-09-04 16:42:29 +010077{
Jim Flynn870b96c2022-03-25 21:24:56 +000078#if !defined(ARMNN_DISABLE_THREADS)
Francis Murtagh68f78d82019-09-04 16:42:29 +010079 std::lock_guard<std::mutex> lockGuard(m_CaptureThreadMutex);
Jim Flynn870b96c2022-03-25 21:24:56 +000080#endif
Francis Murtagh68f78d82019-09-04 16:42:29 +010081 m_CaptureData.SetCapturePeriod(capturePeriod);
82 m_CaptureData.SetCounterIds(counterIds);
Finn Williams032bc742020-02-12 11:02:34 +000083 m_CaptureData.SetActiveBackends(activeBackends);
84
Francis Murtagh68f78d82019-09-04 16:42:29 +010085}
86
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000087} // namespace pipe
Francis Murtagh68f78d82019-09-04 16:42:29 +010088
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000089} // namespace arm