16 #include <boost/numeric/conversion/cast.hpp> 63 return c < 128 && (std::isalnum(c) || c ==
'_');
90 template <
typename SwTracePolicy>
94 return std::all_of(s.begin(), s.end(), [](
unsigned char c) {
return SwTracePolicy::IsValidChar(c); });
97 template <
typename SwTracePolicy>
104 outputBuffer.clear();
107 if (!IsValidSwTraceString<SwTracePolicy>(s))
113 size_t s_size = s.size() + 1;
118 size_t outBufferSize = 1 + (s_size /
uint32_t_size) + (s_size % uint32_t_size != 0 ? 1 : 0);
119 outputBuffer.resize(outBufferSize,
'\0');
123 std::memcpy(outputBuffer.data() + 1, s.data(), s_size);
128 template <
typename SwTracePolicy,
129 typename SwTraceBuffer = std::vector<uint32_t>>
133 SwTraceBuffer tempSwTraceBuffer;
134 bool result = StringToSwTraceString<SwTracePolicy>(directoryComponent, tempSwTraceBuffer);
140 swTraceBuffer.insert(swTraceBuffer.end(), tempSwTraceBuffer.begin(), tempSwTraceBuffer.end());
149 void WriteBytes(
const IPacketBuffer& packetBuffer,
unsigned int offset,
const void* value,
unsigned int valueSize);
161 void WriteBytes(
unsigned char* buffer,
unsigned int offset,
const void* value,
unsigned int valueSize);
163 void WriteUint64(
unsigned char* buffer,
unsigned int offset, uint64_t value);
165 void WriteUint32(
unsigned char* buffer,
unsigned int offset, uint32_t value);
167 void WriteUint16(
unsigned char* buffer,
unsigned int offset, uint16_t value);
169 void WriteUint8(
unsigned char* buffer,
unsigned int offset, uint8_t value);
181 void ReadBytes(
const unsigned char* buffer,
unsigned int offset,
unsigned int valueSize, uint8_t outValue[]);
183 uint64_t
ReadUint64(
unsigned const char* buffer,
unsigned int offset);
185 uint32_t
ReadUint32(
unsigned const char* buffer,
unsigned int offset);
187 uint16_t
ReadUint16(
unsigned const char* buffer,
unsigned int offset);
189 uint8_t
ReadUint8(
unsigned const char* buffer,
unsigned int offset);
192 uint32_t packetClass,
195 uint32_t sequenceNumbered,
196 uint32_t dataLength);
218 const std::string& label,
219 unsigned char* buffer,
220 unsigned int bufferSize,
221 unsigned int& numberOfBytesWritten);
224 unsigned char* buffer,
225 unsigned int bufferSize,
226 unsigned int& numberOfBytesWritten);
229 uint64_t relationshipGuid,
232 unsigned char* buffer,
233 unsigned int bufferSize,
234 unsigned int& numberOfBytesWritten);
237 unsigned int bufferSize,
238 unsigned int& numberOfBytesWritten);
241 unsigned char* buffer,
242 unsigned int bufferSize,
243 unsigned int& numberOfBytesWritten);
246 std::thread::id threadId,
247 uint64_t profilingGuid,
248 unsigned char* buffer,
249 unsigned int bufferSize,
250 unsigned int& numberOfBytesWritten);
263 Packet
ReceivePacket(
const unsigned char* buffer, uint32_t length);
272 bool operator==(
const std::vector<uint8_t>& left, std::thread::id right);
bool StringToSwTraceString(const std::string &s, std::vector< uint32_t > &outputBuffer)
TimelinePacketStatus WriteTimelineMessageDirectoryPackage(unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
std::string GetHardwareVersion()
void WriteUint16(const IPacketBufferPtr &packetBuffer, unsigned int offset, uint16_t value)
void ReadBytes(const IPacketBufferPtr &packetBuffer, unsigned int offset, unsigned int valueSize, uint8_t outValue[])
void WriteUint32(const IPacketBufferPtr &packetBuffer, unsigned int offset, uint32_t value)
uint64_t ReadUint64(const IPacketBufferPtr &packetBuffer, unsigned int offset)
std::pair< uint32_t, uint32_t > CreateTimelinePacketHeader(uint32_t packetFamily, uint32_t packetClass, uint32_t packetType, uint32_t streamId, uint32_t sequenceNumbered, uint32_t dataLength)
Creates a timeline packet header.
std::string GetProcessName()
Exception(const std::string &message)
uint16_t ReadUint16(const IPacketBufferPtr &packetBuffer, unsigned int offset)
uint8_t ReadUint8(const IPacketBufferPtr &packetBuffer, unsigned int offset)
Copyright (c) 2020 ARM Limited.
std::string GetSoftwareInfo()
TimelinePacketStatus WriteTimelineRelationshipBinary(ProfilingRelationshipType relationshipType, uint64_t relationshipGuid, uint64_t headGuid, uint64_t tailGuid, unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
uint16_t GetNextUid(bool peekOnly)
SwTraceMessage ReadSwTraceMessage(const unsigned char *packetBuffer, unsigned int &offset)
bool operator==(const armnn::DataLayout &dataLayout, const DataLayoutIndexed &indexed)
Equality methods.
std::vector< std::string > m_ArgNames
bool IsValidSwTraceString(const std::string &s)
std::vector< uint16_t > GetNextCounterUids(uint16_t firstUid, uint16_t cores)
std::vector< char > m_ArgTypes
void WriteBytes(const IPacketBufferPtr &packetBuffer, unsigned int offset, const void *value, unsigned int valueSize)
uint32_t ConstructHeader(uint32_t packetFamily, uint32_t packetId)
ProfilingRelationshipType
std::enable_if_t< std::is_unsigned< Source >::value &&std::is_unsigned< Dest >::value, Dest > numeric_cast(Source source)
constexpr unsigned int ThreadIdSize
void WriteUint8(const IPacketBufferPtr &packetBuffer, unsigned int offset, uint8_t value)
void WriteUint64(const std::unique_ptr< IPacketBuffer > &packetBuffer, unsigned int offset, uint64_t value)
uint32_t ReadUint32(const IPacketBufferPtr &packetBuffer, unsigned int offset)
static bool IsValidChar(unsigned char c)
std::string GetSoftwareVersion()
Packet ReceivePacket(const unsigned char *buffer, uint32_t length)
TimelinePacketStatus WriteTimelineEventClassBinary(uint64_t profilingGuid, unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
uint32_t CalculateSizeOfPaddedSwString(const std::string &str)
Base class for all ArmNN exceptions so that users can filter to just those.
static bool IsValidChar(unsigned char c)
TimelinePacketStatus WriteTimelineLabelBinaryPacket(uint64_t profilingGuid, const std::string &label, unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
TimelinePacketStatus WriteTimelineEventBinary(uint64_t timestamp, std::thread::id threadId, uint64_t profilingGuid, unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
std::string CentreAlignFormatting(const std::string &stringToPass, const int spacingWidth)
bool ConvertDirectoryComponent(const std::string &directoryComponent, SwTraceBuffer &swTraceBuffer)
TimelinePacketStatus WriteTimelineEntityBinary(uint64_t profilingGuid, unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
void PrintCounterDirectory(ICounterDirectory &counterDirectory)
std::unique_ptr< IPacketBuffer > IPacketBufferPtr
static bool IsValidChar(unsigned char c)