blob: ff96d257e71dd4879e454694ec4a0abf551f5834 [file] [log] [blame]
Jim Flynn34430252022-03-04 15:03:58 +00001//
2// Copyright © 2022 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include <string>
9
10namespace arm
11{
12
13namespace pipe
14{
15
16class Counter final
17{
18public:
19 // Constructors
20 Counter(const std::string& backendId,
21 uint16_t counterUid,
22 uint16_t maxCounterUid,
23 uint16_t counterClass,
24 uint16_t interpolation,
25 double multiplier,
26 const std::string& name,
27 const std::string& description,
28 const std::string& units,
29 uint16_t deviceUid,
30 uint16_t counterSetUid)
31 : m_BackendId(backendId)
32 , m_Uid(counterUid)
33 , m_MaxCounterUid(maxCounterUid)
34 , m_Class(counterClass)
35 , m_Interpolation(interpolation)
36 , m_Multiplier(multiplier)
37 , m_Name(name)
38 , m_Description(description)
39 , m_Units(units)
40 , m_DeviceUid(deviceUid)
41 , m_CounterSetUid(counterSetUid)
42 {}
43
44 // Fields
45 std::string m_BackendId;
46 uint16_t m_Uid;
47 uint16_t m_MaxCounterUid;
48 uint16_t m_Class;
49 uint16_t m_Interpolation;
50 double m_Multiplier;
51 std::string m_Name;
52 std::string m_Description;
53 std::string m_Units; // Optional, leave empty if the counter does not need units
54
55 // Connections
56 uint16_t m_DeviceUid; // Optional, set to zero if the counter is not associated with a device
57 uint16_t m_CounterSetUid; // Optional, set to zero if the counter is not associated with a counter set
58};
59
60} // namespace pipe
61
62} // namespace arm