// // Copyright © 2019 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include #include "armnn/profiling/ITimelineDecoder.hpp" #include #include namespace armnn { namespace timelinedecoder { class TimelineCaptureCommandHandler : public profiling::CommandHandlerFunctor { // Utils uint32_t uint32_t_size = sizeof(uint32_t); uint32_t uint64_t_size = sizeof(uint64_t); using ReadFunction = void (TimelineCaptureCommandHandler::*)(const unsigned char*, uint32_t); public: TimelineCaptureCommandHandler(uint32_t familyId, uint32_t packetId, uint32_t version, ITimelineDecoder& timelineDecoder, uint32_t threadId_size) : CommandHandlerFunctor(familyId, packetId, version) , m_TimelineDecoder(timelineDecoder) , m_ThreadIdSize(threadId_size) {} void operator()(const armnn::profiling::Packet& packet) override; void ReadLabel(const unsigned char* data, uint32_t offset); void ReadEntity(const unsigned char* data, uint32_t offset); void ReadEventClass(const unsigned char* data, uint32_t offset); void ReadRelationship(const unsigned char* data, uint32_t offset); void ReadEvent(const unsigned char* data, uint32_t offset); private: void ParseData(const armnn::profiling::Packet& packet); ITimelineDecoder& m_TimelineDecoder; const uint32_t m_ThreadIdSize; static const ReadFunction m_ReadFunctions[]; }; } //namespace gatordmock } //namespace armnn