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 || reserved < m_Offset)
72 if (m_DirectoryPackage)
74 m_RemainingBufferSize = reserved;
78 m_RemainingBufferSize = reserved - 8;
88 std::thread::id threadId,
89 uint64_t profilingGuid)
111 uint64_t relationshipGuid,
127 m_DirectoryPackage =
true;
131 unsigned int numberOfBytesWritten = 0;
136 m_RemainingBufferSize,
137 numberOfBytesWritten);
144 m_Offset += numberOfBytesWritten;
145 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.
void SendTimelineEventClassBinaryPacket(uint64_t profilingGuid) override
Create and write a TimelineEventClassBinaryPacket from the parameters to the buffer.
virtual void Commit(IPacketBufferPtr &packetBuffer, unsigned int size, bool notifyConsumer=true)=0
Copyright (c) 2020 ARM Limited.
TimelinePacketStatus WriteTimelineRelationshipBinary(ProfilingRelationshipType relationshipType, uint64_t relationshipGuid, uint64_t headGuid, uint64_t tailGuid, 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, std::thread::id threadId, uint64_t profilingGuid) override
Create and write a TimelineEventBinaryPacket from the parameters to the buffer.
TimelinePacketStatus WriteTimelineEventClassBinary(uint64_t profilingGuid, 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)
virtual void SendTimelineRelationshipBinaryPacket(ProfilingRelationshipType relationshipType, uint64_t relationshipGuid, uint64_t headGuid, uint64_t tailGuid) override
Create and write a TimelineRelationshipBinaryPacket from the parameters to the buffer.
TimelinePacketStatus WriteTimelineEventBinary(uint64_t timestamp, std::thread::id threadId, uint64_t profilingGuid, unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
TimelinePacketStatus WriteTimelineEntityBinary(uint64_t profilingGuid, unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)