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 #pragma once 7*89c4ff92SAndroid Build Coastguard Worker 8*89c4ff92SAndroid Build Coastguard Worker #include "CounterValue.hpp" 9*89c4ff92SAndroid Build Coastguard Worker 10*89c4ff92SAndroid Build Coastguard Worker #include <common/include/ICounterDirectory.hpp> 11*89c4ff92SAndroid Build Coastguard Worker 12*89c4ff92SAndroid Build Coastguard Worker namespace arm 13*89c4ff92SAndroid Build Coastguard Worker { 14*89c4ff92SAndroid Build Coastguard Worker 15*89c4ff92SAndroid Build Coastguard Worker namespace pipe 16*89c4ff92SAndroid Build Coastguard Worker { 17*89c4ff92SAndroid Build Coastguard Worker 18*89c4ff92SAndroid Build Coastguard Worker class ISendCounterPacket 19*89c4ff92SAndroid Build Coastguard Worker { 20*89c4ff92SAndroid Build Coastguard Worker public: 21*89c4ff92SAndroid Build Coastguard Worker using IndexValuePairsVector = std::vector<CounterValue>; 22*89c4ff92SAndroid Build Coastguard Worker ~ISendCounterPacket()23*89c4ff92SAndroid Build Coastguard Worker virtual ~ISendCounterPacket() {} 24*89c4ff92SAndroid Build Coastguard Worker 25*89c4ff92SAndroid Build Coastguard Worker /// Create and write a StreamMetaDataPacket in the buffer 26*89c4ff92SAndroid Build Coastguard Worker virtual void SendStreamMetaDataPacket() = 0; 27*89c4ff92SAndroid Build Coastguard Worker 28*89c4ff92SAndroid Build Coastguard Worker /// Create and write a CounterDirectoryPacket from the parameters to the buffer. 29*89c4ff92SAndroid Build Coastguard Worker virtual void SendCounterDirectoryPacket(const ICounterDirectory& counterDirectory) = 0; 30*89c4ff92SAndroid Build Coastguard Worker 31*89c4ff92SAndroid Build Coastguard Worker /// Create and write a PeriodicCounterCapturePacket from the parameters to the buffer. 32*89c4ff92SAndroid Build Coastguard Worker virtual void SendPeriodicCounterCapturePacket(uint64_t timestamp, const IndexValuePairsVector& values) = 0; 33*89c4ff92SAndroid Build Coastguard Worker 34*89c4ff92SAndroid Build Coastguard Worker /// Create and write a PeriodicCounterSelectionPacket from the parameters to the buffer. 35*89c4ff92SAndroid Build Coastguard Worker virtual void SendPeriodicCounterSelectionPacket(uint32_t capturePeriod, 36*89c4ff92SAndroid Build Coastguard Worker const std::vector<uint16_t>& selectedCounterIds) = 0; 37*89c4ff92SAndroid Build Coastguard Worker }; 38*89c4ff92SAndroid Build Coastguard Worker 39*89c4ff92SAndroid Build Coastguard Worker } // namespace pipe 40*89c4ff92SAndroid Build Coastguard Worker 41*89c4ff92SAndroid Build Coastguard Worker } // namespace arm 42