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