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