template <typename T>
class RepeatedFieldIterator
Defined at line 106 of file ../../third_party/perfetto/include/perfetto/protozero/proto_decoder.h
An iterator-like class used to iterate through repeated fields. Used by
TypedProtoDecoder. The iteration sequence is a bit counter-intuitive due to
the fact that fields_[field_id] holds the *last* value of the field, not the
first, but the remaining storage holds repeated fields in FIFO order.
Assume that we push the 10,11,12 into a repeated field with ID=1.
Decoder memory layout: [ fields storage ] [ repeated fields storage ]
1st iteration: 10
2nd iteration: 11 10
3rd iteration: 12 10 11
We start the iteration
@
fields_[num_fields], which is the start of the
repeated fields storage, proceed until the end and lastly jump
@
fields_[id].
Public Methods
void RepeatedFieldIterator<T> (uint32_t field_id, const Field * begin, const Field * end, const Field * last)
Defined at line 108 of file ../../third_party/perfetto/include/perfetto/protozero/proto_decoder.h
void RepeatedFieldIterator<T> ()
Constructs an invalid iterator.
Defined at line 117 of file ../../third_party/perfetto/include/perfetto/protozero/proto_decoder.h
bool operator bool ()
Defined at line 120 of file ../../third_party/perfetto/include/perfetto/protozero/proto_decoder.h
const Field & field ()
Defined at line 121 of file ../../third_party/perfetto/include/perfetto/protozero/proto_decoder.h
T operator* ()
Defined at line 123 of file ../../third_party/perfetto/include/perfetto/protozero/proto_decoder.h
const Field * operator-> ()
Defined at line 128 of file ../../third_party/perfetto/include/perfetto/protozero/proto_decoder.h
RepeatedFieldIterator<T> & operator++ ()
Defined at line 130 of file ../../third_party/perfetto/include/perfetto/protozero/proto_decoder.h
RepeatedFieldIterator<T> operator++ (int )
Defined at line 141 of file ../../third_party/perfetto/include/perfetto/protozero/proto_decoder.h