14 #include <common/include/Packet.hpp> 17 #include <condition_variable> 30 class FileOnlyProfilingConnection;
36 m_FileOnlyProfilingConnection(fileOnlyProfilingConnection),
41 void HandlePacket(
const arm::pipe::Packet& packet)
override;
45 uint32_t m_MetaDataPacketHeader;
47 static uint32_t ToUint32(
const unsigned char* data,
TargetEndianness endianness);
58 , m_KeepRunning(false)
62 auto streamMetaDataProcessor = std::make_shared<StreamMetaDataProcessor>(
this);
63 AddLocalPacketHandler(streamMetaDataProcessor);
67 AddLocalPacketHandler(localPacketHandler);
69 if (!m_PacketHandlers.empty())
71 StartProcessingThread();
78 bool IsOpen()
const override;
80 void Close()
override;
83 bool WritePacket(
const unsigned char* buffer, uint32_t length)
override;
86 arm::pipe::Packet ReadPacket(uint32_t timeout)
override;
90 m_Endianness = endianness;
93 void ReturnPacket(arm::pipe::Packet& packet)
override;
97 void StartProcessingThread();
98 void ClearReadableList();
99 void DispatchPacketToHandlers(
const arm::pipe::Packet& packet);
101 void Fail(
const std::string& errorMessage);
103 void ForwardPacketToHandlers(arm::pipe::Packet& packet);
104 void ServiceLocalHandlers();
107 std::queue<arm::pipe::Packet> m_PacketQueue;
110 std::mutex m_PacketAvailableMutex;
111 std::condition_variable m_ConditionPacketAvailable;
113 std::vector<ILocalPacketHandlerSharedPtr> m_PacketHandlers;
114 std::map<uint32_t, std::vector<ILocalPacketHandlerSharedPtr>> m_IndexedHandlers;
115 std::vector<ILocalPacketHandlerSharedPtr> m_UniversalHandlers;
118 std::queue<arm::pipe::Packet> m_ReadableList;
120 std::mutex m_ReadableMutex;
121 std::condition_variable m_ConditionPacketReadable;
124 std::thread m_LocalHandlersThread;
126 std::atomic<bool> m_IsRunning;
127 std::atomic<bool> m_KeepRunning;
std::shared_ptr< ILocalPacketHandler > ILocalPacketHandlerSharedPtr
Copyright (c) 2021 ARM Limited and Contributors.
void SetEndianess(const TargetEndianness &endianness) override
std::vector< armnn::profiling::ILocalPacketHandlerSharedPtr > m_LocalPacketHandlers
uint32_t ConstructHeader(uint32_t packetFamily, uint32_t packetId)
FileOnlyProfilingConnection(const IRuntime::CreationOptions::ExternalProfilingOptions &options)