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

class HeapBuffered

Defined at line 131 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 133 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 134 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 143 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

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

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

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

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

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

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

T * get ()

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

T * operator-> ()

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

bool empty ()

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

std::vector<uint8_t> SerializeAsArray ()

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

std::string SerializeAsString ()

Defined at line 158 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 163 of file ../../third_party/perfetto/include/perfetto/protozero/scattered_heap_buffer.h

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

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

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

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

void Reset ()

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