template <typename T = ::protozero::Message>

class HeapBuffered

Defined at line 135 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

Helper function to create heap-based protozero messages in one line.

Useful when manually serializing a protozero message (primarily in

tests/utilities). So instead of the following:

protozero::MyMessage msg;

protozero::ScatteredHeapBuffer shb;

protozero::ScatteredStreamWriter writer(

&shb

);

shb.set_writer(

&writer

);

msg.Reset(

&writer

);

...

You can write:

protozero::HeapBuffered

<protozero

::MyMessage> msg;

msg->set_stuff(...);

msg.SerializeAsString();

Public Methods

void HeapBuffered<T> ()

Defined at line 137 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

void HeapBuffered<T> (size_t initial_slice_size_bytes, size_t maximum_slice_size_bytes)

Defined at line 138 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

void HeapBuffered<T> (const HeapBuffered<T> & )

This can't be neither copied nor moved because Message hands out pointers

to itself when creating submessages.

Defined at line 147 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

HeapBuffered<T> & operator= (const HeapBuffered<T> & )

Defined at line 148 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

void HeapBuffered<T> (HeapBuffered<T> && )

Defined at line 149 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

HeapBuffered<T> & operator= (HeapBuffered<T> && )

Defined at line 150 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

T * get ()

Defined at line 152 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

T * operator-> ()

Defined at line 153 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

bool empty ()

Defined at line 155 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

std::vector<uint8_t> SerializeAsArray ()

Defined at line 157 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

std::string SerializeAsString ()

Defined at line 162 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

std::pair<std::unique_ptr<uint8_t[]>, size_t> SerializeAsUniquePtr ()

Defined at line 167 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

std::vector<protozero::ContiguousMemoryRange> GetRanges ()

Defined at line 172 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

const std::vector<ScatteredHeapBuffer::Slice> & GetSlices ()

Defined at line 177 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

std::vector<ScatteredHeapBuffer::Slice> TakeSlices ()

Finalizes the message and hands over its slices, leaving this empty and

reusable.

Defined at line 184 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

void Reset ()

Defined at line 192 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h