// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include "CounterDirectory.hpp" namespace armnn { namespace profiling { class ISendCounterPacket { public: using IndexValuePairsVector = std::vector>; virtual ~ISendCounterPacket() {} /// Create and write a StreamMetaDataPacket in the buffer virtual void SendStreamMetaDataPacket() = 0; /// Create and write a CounterDirectoryPacket from the parameters to the buffer. virtual void SendCounterDirectoryPacket(const CounterDirectory& counterDirectory) = 0; /// Create and write a PeriodicCounterCapturePacket from the parameters to the buffer. virtual void SendPeriodicCounterCapturePacket(uint64_t timestamp, const IndexValuePairsVector& values) = 0; /// Create and write a PeriodicCounterSelectionPacket from the parameters to the buffer. virtual void SendPeriodicCounterSelectionPacket(uint32_t capturePeriod, const std::vector& selectedCounterIds) = 0; /// Set a "ready to read" flag in the buffer to notify the reading thread to start reading it. virtual void SetReadyToRead() = 0; }; } // namespace profiling } // namespace armnn