1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2017 Arm Ltd. All rights reserved. 3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT 4*89c4ff92SAndroid Build Coastguard Worker // 5*89c4ff92SAndroid Build Coastguard Worker 6*89c4ff92SAndroid Build Coastguard Worker #include <client/include/Holder.hpp> 7*89c4ff92SAndroid Build Coastguard Worker 8*89c4ff92SAndroid Build Coastguard Worker namespace arm 9*89c4ff92SAndroid Build Coastguard Worker { 10*89c4ff92SAndroid Build Coastguard Worker 11*89c4ff92SAndroid Build Coastguard Worker namespace pipe 12*89c4ff92SAndroid Build Coastguard Worker { 13*89c4ff92SAndroid Build Coastguard Worker operator =(const CaptureData & other)14*89c4ff92SAndroid Build Coastguard WorkerCaptureData& CaptureData::operator=(const CaptureData& other) 15*89c4ff92SAndroid Build Coastguard Worker { 16*89c4ff92SAndroid Build Coastguard Worker m_CapturePeriod = other.m_CapturePeriod; 17*89c4ff92SAndroid Build Coastguard Worker m_CounterIds = other.m_CounterIds; 18*89c4ff92SAndroid Build Coastguard Worker m_ActiveBackends = other.m_ActiveBackends; 19*89c4ff92SAndroid Build Coastguard Worker 20*89c4ff92SAndroid Build Coastguard Worker return *this; 21*89c4ff92SAndroid Build Coastguard Worker } 22*89c4ff92SAndroid Build Coastguard Worker SetActiveBackends(const std::set<std::string> & activeBackends)23*89c4ff92SAndroid Build Coastguard Workervoid CaptureData::SetActiveBackends(const std::set<std::string>& activeBackends) 24*89c4ff92SAndroid Build Coastguard Worker { 25*89c4ff92SAndroid Build Coastguard Worker m_ActiveBackends = activeBackends; 26*89c4ff92SAndroid Build Coastguard Worker } 27*89c4ff92SAndroid Build Coastguard Worker SetCapturePeriod(uint32_t capturePeriod)28*89c4ff92SAndroid Build Coastguard Workervoid CaptureData::SetCapturePeriod(uint32_t capturePeriod) 29*89c4ff92SAndroid Build Coastguard Worker { 30*89c4ff92SAndroid Build Coastguard Worker m_CapturePeriod = capturePeriod; 31*89c4ff92SAndroid Build Coastguard Worker } 32*89c4ff92SAndroid Build Coastguard Worker SetCounterIds(const std::vector<uint16_t> & counterIds)33*89c4ff92SAndroid Build Coastguard Workervoid CaptureData::SetCounterIds(const std::vector<uint16_t>& counterIds) 34*89c4ff92SAndroid Build Coastguard Worker { 35*89c4ff92SAndroid Build Coastguard Worker m_CounterIds = counterIds; 36*89c4ff92SAndroid Build Coastguard Worker } 37*89c4ff92SAndroid Build Coastguard Worker GetActiveBackends() const38*89c4ff92SAndroid Build Coastguard Workerconst std::set<std::string>& CaptureData::GetActiveBackends() const 39*89c4ff92SAndroid Build Coastguard Worker { 40*89c4ff92SAndroid Build Coastguard Worker return m_ActiveBackends; 41*89c4ff92SAndroid Build Coastguard Worker } 42*89c4ff92SAndroid Build Coastguard Worker GetCapturePeriod() const43*89c4ff92SAndroid Build Coastguard Workeruint32_t CaptureData::GetCapturePeriod() const 44*89c4ff92SAndroid Build Coastguard Worker { 45*89c4ff92SAndroid Build Coastguard Worker return m_CapturePeriod; 46*89c4ff92SAndroid Build Coastguard Worker } 47*89c4ff92SAndroid Build Coastguard Worker GetCounterIds() const48*89c4ff92SAndroid Build Coastguard Workerconst std::vector<uint16_t>& CaptureData::GetCounterIds() const 49*89c4ff92SAndroid Build Coastguard Worker { 50*89c4ff92SAndroid Build Coastguard Worker return m_CounterIds; 51*89c4ff92SAndroid Build Coastguard Worker } 52*89c4ff92SAndroid Build Coastguard Worker GetCaptureData() const53*89c4ff92SAndroid Build Coastguard WorkerCaptureData Holder::GetCaptureData() const 54*89c4ff92SAndroid Build Coastguard Worker { 55*89c4ff92SAndroid Build Coastguard Worker #if !defined(ARMNN_DISABLE_THREADS) 56*89c4ff92SAndroid Build Coastguard Worker std::lock_guard<std::mutex> lockGuard(m_CaptureThreadMutex); 57*89c4ff92SAndroid Build Coastguard Worker #endif 58*89c4ff92SAndroid Build Coastguard Worker return m_CaptureData; 59*89c4ff92SAndroid Build Coastguard Worker } 60*89c4ff92SAndroid Build Coastguard Worker IsCounterIdInCaptureData(uint16_t counterId)61*89c4ff92SAndroid Build Coastguard Workerbool CaptureData::IsCounterIdInCaptureData(uint16_t counterId) 62*89c4ff92SAndroid Build Coastguard Worker { 63*89c4ff92SAndroid Build Coastguard Worker for (auto m_CounterId : m_CounterIds) { 64*89c4ff92SAndroid Build Coastguard Worker if (m_CounterId == counterId) 65*89c4ff92SAndroid Build Coastguard Worker { 66*89c4ff92SAndroid Build Coastguard Worker return true; 67*89c4ff92SAndroid Build Coastguard Worker } 68*89c4ff92SAndroid Build Coastguard Worker } 69*89c4ff92SAndroid Build Coastguard Worker 70*89c4ff92SAndroid Build Coastguard Worker // Return false by default unless counterId is found 71*89c4ff92SAndroid Build Coastguard Worker return false; 72*89c4ff92SAndroid Build Coastguard Worker } 73*89c4ff92SAndroid Build Coastguard Worker SetCaptureData(uint32_t capturePeriod,const std::vector<uint16_t> & counterIds,const std::set<std::string> & activeBackends)74*89c4ff92SAndroid Build Coastguard Workervoid Holder::SetCaptureData(uint32_t capturePeriod, 75*89c4ff92SAndroid Build Coastguard Worker const std::vector<uint16_t>& counterIds, 76*89c4ff92SAndroid Build Coastguard Worker const std::set<std::string>& activeBackends) 77*89c4ff92SAndroid Build Coastguard Worker { 78*89c4ff92SAndroid Build Coastguard Worker #if !defined(ARMNN_DISABLE_THREADS) 79*89c4ff92SAndroid Build Coastguard Worker std::lock_guard<std::mutex> lockGuard(m_CaptureThreadMutex); 80*89c4ff92SAndroid Build Coastguard Worker #endif 81*89c4ff92SAndroid Build Coastguard Worker m_CaptureData.SetCapturePeriod(capturePeriod); 82*89c4ff92SAndroid Build Coastguard Worker m_CaptureData.SetCounterIds(counterIds); 83*89c4ff92SAndroid Build Coastguard Worker m_CaptureData.SetActiveBackends(activeBackends); 84*89c4ff92SAndroid Build Coastguard Worker 85*89c4ff92SAndroid Build Coastguard Worker } 86*89c4ff92SAndroid Build Coastguard Worker 87*89c4ff92SAndroid Build Coastguard Worker } // namespace pipe 88*89c4ff92SAndroid Build Coastguard Worker 89*89c4ff92SAndroid Build Coastguard Worker } // namespace arm 90