2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
15 enum class ProfilingState
23 class ProfilingStateMachine
26 ProfilingStateMachine(): m_State(ProfilingState::Uninitialised) {};
27 ProfilingStateMachine(ProfilingState state): m_State(state) {};
29 ProfilingState GetCurrentState() const;
30 void TransitionToState(ProfilingState newState);
32 bool IsOneOfStates(ProfilingState state1)
37 template<typename T, typename... Args >
38 bool IsOneOfStates(T state1, T state2, Args... args)
46 return IsOneOfStates(state1, args...);
51 std::atomic<ProfilingState> m_State;
54 constexpr char const* GetProfilingStateName(ProfilingState state)
58 case ProfilingState::Uninitialised: return "Uninitialised";
59 case ProfilingState::NotConnected: return "NotConnected";
60 case ProfilingState::WaitingForAck: return "WaitingForAck";
61 case ProfilingState::Active: return "Active";
62 default: return "Unknown";
66 } //namespace profiling