template <uint32_t... kFieldIds>
class SelectiveDecodeMask
Defined at line 333 of file ../../third_party/perfetto/include/perfetto/protozero/proto_decoder.h
Allowlist for selective decoding, built at compile time from the field ids
given as template arguments and sized automatically to the highest of them.
The mask does not need to match the decoder's MAX_FIELD_ID: the selective
constructor caps the decoder's dense window at |kMaxFieldId|, so ids above
it simply spill and the mask is never read beyond its end.
Usage:
static constexpr SelectiveDecodeMask
<TracePacket
::kTimestampFieldNumber,
TracePacket::kInternedDataFieldNumber>
kMask{};
SelectiveTypedProtoDecoder
<MAX
_FIELD_ID> decoder(data, size, kMask);
for (const Field
&
f : decoder.unknown_fields()) { ... }
Public Members
static const uint32_t kMaxFieldId
Public Methods
void SelectiveDecodeMask<kFieldIds...> ()
Defined at line 338 of file ../../third_party/perfetto/include/perfetto/protozero/proto_decoder.h
const uint64_t * data ()
Defined at line 342 of file ../../third_party/perfetto/include/perfetto/protozero/proto_decoder.h
bool contains (uint32_t id)
True if |id| is one of the whitelisted kFieldIds.
Defined at line 345 of file ../../third_party/perfetto/include/perfetto/protozero/proto_decoder.h