diff options
Diffstat (limited to 'src/timelineDecoder/TimelineCaptureCommandHandler.cpp')
-rw-r--r-- | src/timelineDecoder/TimelineCaptureCommandHandler.cpp | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/src/timelineDecoder/TimelineCaptureCommandHandler.cpp b/src/timelineDecoder/TimelineCaptureCommandHandler.cpp deleted file mode 100644 index 39a806ce87..0000000000 --- a/src/timelineDecoder/TimelineCaptureCommandHandler.cpp +++ /dev/null @@ -1,164 +0,0 @@ -// -// Copyright © 2019 Arm Ltd and Contributors. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#include "TimelineCaptureCommandHandler.hpp" - -#include <string> -#include <armnn/Logging.hpp> -namespace armnn -{ - -namespace timelinedecoder -{ - -//Array of member functions, the array index matches the decl_id -const TimelineCaptureCommandHandler::ReadFunction TimelineCaptureCommandHandler::m_ReadFunctions[] -{ - &TimelineCaptureCommandHandler::ReadLabel, // Label decl_id = 0 - &TimelineCaptureCommandHandler::ReadEntity, // Entity decl_id = 1 - &TimelineCaptureCommandHandler::ReadEventClass, // EventClass decl_id = 2 - &TimelineCaptureCommandHandler::ReadRelationship, // Relationship decl_id = 3 - &TimelineCaptureCommandHandler::ReadEvent // Event decl_id = 4 -}; - -void TimelineCaptureCommandHandler::SetThreadIdSize(uint32_t size) -{ - m_ThreadIdSize = size; -} - -void TimelineCaptureCommandHandler::operator()(const profiling::Packet& packet) -{ - ParseData(packet); -} - -void TimelineCaptureCommandHandler::ParseData(const armnn::profiling::Packet& packet) -{ - uint32_t offset = 0; - m_PacketLength = packet.GetLength(); - - // We are expecting TimelineDirectoryCaptureCommandHandler to set the thread id size - // if it not set in the constructor - if (m_ThreadIdSize == 0) - { - ARMNN_LOG(error) << "TimelineCaptureCommandHandler: m_ThreadIdSize has not been set"; - return; - } - - if (packet.GetLength() < 8) - { - return; - } - - const unsigned char* data = reinterpret_cast<const unsigned char*>(packet.GetData()); - - uint32_t declId = 0; - - while ( offset < m_PacketLength ) - { - declId = profiling::ReadUint32(data, offset); - offset += uint32_t_size; - - ITimelineDecoder::TimelineStatus status = (this->*m_ReadFunctions[declId])(data, offset); - if (status == ITimelineDecoder::TimelineStatus::TimelineStatus_Fail) - { - ARMNN_LOG(error) << "Decode of timeline message type [" << declId << - "] at offset [" << offset << "] failed"; - break; - } - } -} - -ITimelineDecoder::TimelineStatus TimelineCaptureCommandHandler::ReadLabel(const unsigned char* data, uint32_t& offset) -{ - ITimelineDecoder::Label label; - label.m_Guid = profiling::ReadUint64(data, offset); - offset += uint64_t_size; - - uint32_t nameLength = profiling::ReadUint32(data, offset); - offset += uint32_t_size; - - uint32_t i = 0; - // nameLength - 1 to account for null operator \0 - for ( i = 0; i < nameLength - 1; ++i ) - { - label.m_Name += static_cast<char>(profiling::ReadUint8(data, offset + i)); - } - // Shift offset past nameLength - uint32_t uint32WordAmount = (nameLength / uint32_t_size) + (nameLength % uint32_t_size != 0 ? 1 : 0); - offset += uint32WordAmount * uint32_t_size; - - return m_TimelineDecoder.CreateLabel(label); -} - -ITimelineDecoder::TimelineStatus TimelineCaptureCommandHandler::ReadEntity( - const unsigned char* data, uint32_t& offset) -{ - ITimelineDecoder::Entity entity; - entity.m_Guid = profiling::ReadUint64(data, offset); - offset += uint64_t_size; - return m_TimelineDecoder.CreateEntity(entity); -} - -ITimelineDecoder::TimelineStatus TimelineCaptureCommandHandler::ReadEventClass( - const unsigned char* data, uint32_t& offset) -{ - ITimelineDecoder::EventClass eventClass; - eventClass.m_Guid = profiling::ReadUint64(data, offset); - offset += uint64_t_size; - eventClass.m_NameGuid = profiling::ReadUint64(data, offset); - offset += uint64_t_size; - return m_TimelineDecoder.CreateEventClass(eventClass); -} - -ITimelineDecoder::TimelineStatus TimelineCaptureCommandHandler::ReadRelationship( - const unsigned char* data, uint32_t& offset) -{ - ITimelineDecoder::Relationship relationship; - relationship.m_RelationshipType = - static_cast<ITimelineDecoder::RelationshipType>(profiling::ReadUint32(data, offset)); - offset += uint32_t_size; - - relationship.m_Guid = profiling::ReadUint64(data, offset); - offset += uint64_t_size; - - relationship.m_HeadGuid = profiling::ReadUint64(data, offset); - offset += uint64_t_size; - - relationship.m_TailGuid = profiling::ReadUint64(data, offset); - offset += uint64_t_size; - - relationship.m_AttributeGuid = profiling::ReadUint64(data, offset); - offset += uint64_t_size; - - return m_TimelineDecoder.CreateRelationship(relationship); -} - -ITimelineDecoder::TimelineStatus TimelineCaptureCommandHandler::ReadEvent( - const unsigned char* data, uint32_t& offset) -{ - ITimelineDecoder::Event event; - event.m_TimeStamp = profiling::ReadUint64(data, offset); - offset += uint64_t_size; - - if ( m_ThreadIdSize == 4 ) - { - event.m_ThreadId = profiling::ReadUint32(data, offset); - } - else if ( m_ThreadIdSize == 8 ) - { - event.m_ThreadId = profiling::ReadUint64(data, offset); - } - - offset += m_ThreadIdSize; - - event.m_Guid = profiling::ReadUint64(data, offset); - offset += uint64_t_size; - - return m_TimelineDecoder.CreateEvent(event); -} - -} //namespace gatordmock - -} //namespace armnn |