8 #include <common/include/NumericCast.hpp> 9 #include <common/include/PacketVersionResolver.hpp> 10 #include <common/include/ProfilingException.hpp> 12 #include <server/include/timelineDecoder/DirectoryCaptureCommandHandler.hpp> 22 std::vector<uint32_t> headers;
23 headers.push_back(m_CounterDirectoryMessageHeader);
29 if (packet.GetHeader() != m_CounterDirectoryMessageHeader)
33 arm::pipe::PacketVersionResolver packetVersionResolver;
34 DirectoryCaptureCommandHandler directoryCaptureCommandHandler(
35 "ARMNN", 0, 2, packetVersionResolver.ResolvePacketVersion(0, 2).GetEncodedValue());
36 directoryCaptureCommandHandler.operator()(packet);
37 const ICounterDirectory& counterDirectory = directoryCaptureCommandHandler.GetCounterDirectory();
38 for (
auto& category : counterDirectory.GetCategories())
41 std::vector<uint16_t> translatedCounters;
42 for (
auto const& copyUid : category->m_Counters)
44 translatedCounters.emplace_back(directoryCaptureCommandHandler.TranslateUIDCopyToOriginal(copyUid));
46 m_IdList.insert(std::end(m_IdList), std::begin(translatedCounters), std::end(translatedCounters));
48 SendCounterSelectionPacket();
51 void RequestCountersPacketHandler::SendCounterSelectionPacket()
53 uint32_t uint16_t_size =
sizeof(uint16_t);
54 uint32_t uint32_t_size =
sizeof(uint32_t);
59 auto uniqueData = std::make_unique<unsigned char[]>(bodySize);
60 auto data =
reinterpret_cast<unsigned char*
>(uniqueData.get());
63 WriteUint32(data, offset, m_CapturePeriod);
66 offset += uint32_t_size;
67 for (
const uint16_t&
id : m_IdList)
69 WriteUint16(data, offset,
id);
70 offset += uint16_t_size;
73 arm::pipe::Packet packet(0x40000, bodySize, uniqueData);
74 m_Connection->ReturnPacket(packet);
std::vector< uint32_t > GetHeadersAccepted() override
void HandlePacket(const arm::pipe::Packet &packet) override
std::enable_if_t< std::is_unsigned< Source >::value &&std::is_unsigned< Dest >::value, Dest > numeric_cast(Source source)