16 #include <condition_variable> 45 const bool quietOp =
true)
50 , m_KeepRunning(
false)
55 AddLocalPacketHandler(localPacketHandler);
57 if (!options.m_LocalPacketHandlers.empty())
59 StartProcessingThread();
66 bool IsOpen()
const override;
68 void Close()
override;
71 bool WritePacket(
const unsigned char* buffer, uint32_t length)
override;
74 Packet ReadPacket(uint32_t timeout)
override;
78 void StartProcessingThread();
79 void ClearReadableList();
80 void DispatchPacketToHandlers(
const Packet& packet);
82 bool WaitForStreamMeta(
const unsigned char* buffer, uint32_t length);
86 void SendConnectionAck();
88 bool SendCounterSelectionPacket();
90 PackageActivity GetPackageActivity(
const Packet& packet, uint32_t headerAsWords[2]);
92 void Fail(
const std::string& errorMessage);
94 void ForwardPacketToHandlers(Packet& packet);
95 void ServiceLocalHandlers();
97 Runtime::CreationOptions::ExternalProfilingOptions m_Options;
99 std::vector<uint16_t> m_IdList;
100 std::queue<Packet> m_PacketQueue;
103 std::mutex m_PacketAvailableMutex;
104 std::condition_variable m_ConditionPacketAvailable;
106 std::vector<ILocalPacketHandlerSharedPtr> m_PacketHandlers;
107 std::map<uint32_t, std::vector<ILocalPacketHandlerSharedPtr>> m_IndexedHandlers;
108 std::vector<ILocalPacketHandlerSharedPtr> m_UniversalHandlers;
111 std::queue<Packet> m_ReadableList;
113 std::mutex m_ReadableMutex;
114 std::condition_variable m_ConditionPacketReadable;
117 std::thread m_LocalHandlersThread;
119 std::atomic<bool> m_IsRunning;
120 std::atomic<bool> m_KeepRunning;
std::shared_ptr< ILocalPacketHandler > ILocalPacketHandlerSharedPtr
Copyright (c) 2020 ARM Limited.
FileOnlyProfilingConnection(const Runtime::CreationOptions::ExternalProfilingOptions &options, const bool quietOp=true)
armnn::Runtime::CreationOptions::ExternalProfilingOptions options