16 if (m_WriteBuffer ==
nullptr)
22 if (!m_DirectoryPackage)
25 m_PacketDataLength = m_Offset - m_uint32_t_size * 2;
33 WriteUint32(m_WriteBuffer->GetWritableData(), m_Offset, m_PacketHeader.first);
34 m_Offset += m_uint32_t_size;
35 WriteUint32(m_WriteBuffer->GetWritableData(), m_Offset, m_PacketHeader.second);
37 m_BufferManager.
Commit(m_WriteBuffer, m_PacketDataLength + m_uint32_t_size * 2);
42 m_DirectoryPackage =
false;
43 m_BufferManager.
Commit(m_WriteBuffer, m_Offset);
47 m_WriteBuffer.reset(
nullptr);
50 m_RemainingBufferSize = 0;
53 void SendTimelinePacket::ReserveBuffer()
55 if (m_WriteBuffer !=
nullptr)
61 uint32_t reserved = 0;
67 if (m_WriteBuffer ==
nullptr)
71 if (reserved < m_Offset)
76 if (m_DirectoryPackage)
78 m_RemainingBufferSize = reserved;
82 m_RemainingBufferSize = reserved - 8;
93 uint64_t profilingGuid)
116 uint64_t relationshipGuid,
119 uint64_t attributeGuid)
134 m_DirectoryPackage =
true;
138 unsigned int numberOfBytesWritten = 0;
143 m_RemainingBufferSize,
144 numberOfBytesWritten);
151 m_Offset += numberOfBytesWritten;
152 m_RemainingBufferSize -= numberOfBytesWritten;
virtual IPacketBufferPtr Reserve(unsigned int requestedSize, unsigned int &reservedSize)=0
TimelinePacketStatus WriteTimelineMessageDirectoryPackage(unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
void SendTimelineMessageDirectoryPackage() override
Create and write a TimelineMessageDirectoryPackage in the buffer.
void WriteUint32(const IPacketBufferPtr &packetBuffer, unsigned int offset, uint32_t value)
void SendTimelineLabelBinaryPacket(uint64_t profilingGuid, const std::string &label) override
Create and write a TimelineLabelBinaryPacket from the parameters to the buffer.
void SendTimelineEntityBinaryPacket(uint64_t profilingGuid) override
Create and write a TimelineEntityBinaryPacket from the parameters to the buffer.
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.
TimelinePacketStatus WriteTimelineRelationshipBinary(ProfilingRelationshipType relationshipType, uint64_t relationshipGuid, uint64_t headGuid, uint64_t tailGuid, uint64_t attributeGuid, unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
virtual void Commit(IPacketBufferPtr &packetBuffer, unsigned int size, bool notifyConsumer=true)=0
Copyright (c) 2020 ARM Limited.
virtual void SendTimelineRelationshipBinaryPacket(ProfilingRelationshipType relationshipType, uint64_t relationshipGuid, uint64_t headGuid, uint64_t tailGuid, uint64_t attributeGuid) override
Create and write a TimelineRelationshipBinaryPacket from the parameters to the buffer.
TimelinePacketStatus WriteTimelineEventBinary(uint64_t timestamp, int threadId, uint64_t profilingGuid, unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
void Commit() override
Commits the current buffer and reset the member variables.
ProfilingRelationshipType
#define MAX_METADATA_PACKET_LENGTH
void SendTimelineEventBinaryPacket(uint64_t timestamp, int threadId, uint64_t profilingGuid) override
Create and write a TimelineEventBinaryPacket from the parameters to the buffer.
TimelinePacketStatus WriteTimelineEventClassBinary(uint64_t profilingGuid, uint64_t nameGuid, unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
TimelinePacketStatus WriteTimelineLabelBinaryPacket(uint64_t profilingGuid, const std::string &label, unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
TimelinePacketStatus WriteTimelineEntityBinary(uint64_t profilingGuid, unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
void SendTimelineEventClassBinaryPacket(uint64_t profilingGuid, uint64_t nameGuid) override
Create and write a TimelineEventClassBinaryPacket from the parameters to the buffer.