| // |
| // Copyright © 2017 Arm Ltd. All rights reserved. |
| // SPDX-License-Identifier: MIT |
| // |
| |
| #include "ProfilingService.hpp" |
| |
| namespace armnn |
| { |
| |
| namespace profiling |
| { |
| |
| ProfilingService::ProfilingService(const Runtime::CreationOptions::ExternalProfilingOptions& options) |
| : m_Options(options) |
| { |
| Initialise(); |
| } |
| |
| void ProfilingService::Initialise() |
| { |
| if (m_Options.m_EnableProfiling == true) |
| { |
| // Setup Counter Directory - this should only be created if profiling is enabled |
| // Setup Counter meta |
| |
| // For now until CounterDirectory setup is implemented, change m_State once everything initialised |
| m_State.TransitionToState(ProfilingState::NotConnected); |
| } |
| } |
| |
| void ProfilingService::Run() |
| { |
| if (m_State.GetCurrentState() == ProfilingState::NotConnected) |
| { |
| // Since GetProfilingConnection is not implemented, if !NULL, |
| // then change to WaitingForAck. This will need to change once there is implementation |
| // for the IProfilingConnection |
| if (!m_Factory.GetProfilingConnection(m_Options)) |
| { |
| m_State.TransitionToState(ProfilingState::WaitingForAck); |
| } |
| } else if (m_State.GetCurrentState() == ProfilingState::Uninitialised && m_Options.m_EnableProfiling == true) |
| { |
| Initialise(); |
| } |
| } |
| |
| ProfilingState ProfilingService::GetCurrentState() const |
| { |
| return m_State.GetCurrentState(); |
| } |
| } // namespace profiling |
| |
| } // namespace armnn |