/src/perfetto/include/perfetto/protozero/field_writer.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright (C) 2021 The Android Open Source Project |
3 | | * |
4 | | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | | * you may not use this file except in compliance with the License. |
6 | | * You may obtain a copy of the License at |
7 | | * |
8 | | * http://www.apache.org/licenses/LICENSE-2.0 |
9 | | * |
10 | | * Unless required by applicable law or agreed to in writing, software |
11 | | * distributed under the License is distributed on an "AS IS" BASIS, |
12 | | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
13 | | * See the License for the specific language governing permissions and |
14 | | * limitations under the License. |
15 | | */ |
16 | | |
17 | | #include "perfetto/protozero/message.h" |
18 | | #include "perfetto/protozero/proto_utils.h" |
19 | | |
20 | | #ifndef INCLUDE_PERFETTO_PROTOZERO_FIELD_WRITER_H_ |
21 | | #define INCLUDE_PERFETTO_PROTOZERO_FIELD_WRITER_H_ |
22 | | |
23 | | namespace protozero { |
24 | | namespace internal { |
25 | | |
26 | | template <proto_utils::ProtoSchemaType proto_schema_type> |
27 | | struct FieldWriter { |
28 | | static_assert(proto_schema_type != proto_utils::ProtoSchemaType::kMessage, |
29 | | "FieldWriter can't be used with nested messages"); |
30 | | }; |
31 | | |
32 | | template <> |
33 | | struct FieldWriter<proto_utils::ProtoSchemaType::kDouble> { |
34 | 0 | inline static void Append(Message& message, uint32_t field_id, double value) { |
35 | 0 | message.AppendFixed(field_id, value); |
36 | 0 | } |
37 | | }; |
38 | | |
39 | | template <> |
40 | | struct FieldWriter<proto_utils::ProtoSchemaType::kFloat> { |
41 | 0 | inline static void Append(Message& message, uint32_t field_id, float value) { |
42 | 0 | message.AppendFixed(field_id, value); |
43 | 0 | } |
44 | | }; |
45 | | |
46 | | template <> |
47 | | struct FieldWriter<proto_utils::ProtoSchemaType::kBool> { |
48 | 1.54k | inline static void Append(Message& message, uint32_t field_id, bool value) { |
49 | 1.54k | message.AppendTinyVarInt(field_id, value); |
50 | 1.54k | } |
51 | | }; |
52 | | |
53 | | template <> |
54 | | struct FieldWriter<proto_utils::ProtoSchemaType::kInt32> { |
55 | | inline static void Append(Message& message, |
56 | | uint32_t field_id, |
57 | 6.04k | int32_t value) { |
58 | 6.04k | message.AppendVarInt(field_id, value); |
59 | 6.04k | } |
60 | | }; |
61 | | |
62 | | template <> |
63 | | struct FieldWriter<proto_utils::ProtoSchemaType::kInt64> { |
64 | | inline static void Append(Message& message, |
65 | | uint32_t field_id, |
66 | 902 | int64_t value) { |
67 | 902 | message.AppendVarInt(field_id, value); |
68 | 902 | } |
69 | | }; |
70 | | |
71 | | template <> |
72 | | struct FieldWriter<proto_utils::ProtoSchemaType::kUint32> { |
73 | | inline static void Append(Message& message, |
74 | | uint32_t field_id, |
75 | 13.5k | uint32_t value) { |
76 | 13.5k | message.AppendVarInt(field_id, value); |
77 | 13.5k | } |
78 | | }; |
79 | | |
80 | | template <> |
81 | | struct FieldWriter<proto_utils::ProtoSchemaType::kUint64> { |
82 | | inline static void Append(Message& message, |
83 | | uint32_t field_id, |
84 | 16.9k | uint64_t value) { |
85 | 16.9k | message.AppendVarInt(field_id, value); |
86 | 16.9k | } |
87 | | }; |
88 | | |
89 | | template <> |
90 | | struct FieldWriter<proto_utils::ProtoSchemaType::kSint32> { |
91 | | inline static void Append(Message& message, |
92 | | uint32_t field_id, |
93 | 0 | int32_t value) { |
94 | 0 | message.AppendSignedVarInt(field_id, value); |
95 | 0 | } |
96 | | }; |
97 | | |
98 | | template <> |
99 | | struct FieldWriter<proto_utils::ProtoSchemaType::kSint64> { |
100 | | inline static void Append(Message& message, |
101 | | uint32_t field_id, |
102 | 0 | int64_t value) { |
103 | 0 | message.AppendSignedVarInt(field_id, value); |
104 | 0 | } |
105 | | }; |
106 | | |
107 | | template <> |
108 | | struct FieldWriter<proto_utils::ProtoSchemaType::kFixed32> { |
109 | | inline static void Append(Message& message, |
110 | | uint32_t field_id, |
111 | 0 | uint32_t value) { |
112 | 0 | message.AppendFixed(field_id, value); |
113 | 0 | } |
114 | | }; |
115 | | |
116 | | template <> |
117 | | struct FieldWriter<proto_utils::ProtoSchemaType::kFixed64> { |
118 | | inline static void Append(Message& message, |
119 | | uint32_t field_id, |
120 | 0 | uint64_t value) { |
121 | 0 | message.AppendFixed(field_id, value); |
122 | 0 | } |
123 | | }; |
124 | | |
125 | | template <> |
126 | | struct FieldWriter<proto_utils::ProtoSchemaType::kSfixed32> { |
127 | | inline static void Append(Message& message, |
128 | | uint32_t field_id, |
129 | 0 | int32_t value) { |
130 | 0 | message.AppendFixed(field_id, value); |
131 | 0 | } |
132 | | }; |
133 | | |
134 | | template <> |
135 | | struct FieldWriter<proto_utils::ProtoSchemaType::kSfixed64> { |
136 | | inline static void Append(Message& message, |
137 | | uint32_t field_id, |
138 | 0 | int64_t value) { |
139 | 0 | message.AppendFixed(field_id, value); |
140 | 0 | } |
141 | | }; |
142 | | |
143 | | template <> |
144 | | struct FieldWriter<proto_utils::ProtoSchemaType::kEnum> { |
145 | | template <typename EnumType> |
146 | | inline static void Append(Message& message, |
147 | | uint32_t field_id, |
148 | 1.99k | EnumType value) { |
149 | 1.99k | message.AppendVarInt(field_id, value); |
150 | 1.99k | } Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::FtraceClock>(protozero::Message&, unsigned int, perfetto::protos::pbzero::FtraceClock) void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::FtraceParseStatus>(protozero::Message&, unsigned int, perfetto::protos::pbzero::FtraceParseStatus) Line | Count | Source | 148 | 1.09k | EnumType value) { | 149 | 1.09k | message.AppendVarInt(field_id, value); | 150 | 1.09k | } |
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_KprobeEvent::KprobeType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_KprobeEvent::KprobeType) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_FtraceStats::Phase>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_FtraceStats::Phase) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_InodeFileMap_Entry::Type>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_InodeFileMap_Entry::Type) void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::BuiltinClock>(protozero::Message&, unsigned int, perfetto::protos::pbzero::BuiltinClock) Line | Count | Source | 148 | 902 | EnumType value) { | 149 | 902 | message.AppendVarInt(field_id, value); | 150 | 902 | } |
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TraceStats::FinalFlushOutcome>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TraceStats::FinalFlushOutcome) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig::LockdownModeOperation>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig::LockdownModeOperation) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig::CompressionType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig::CompressionType) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig::StatsdLogging>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig::StatsdLogging) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig_TraceFilter::StringFilterPolicy>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig_TraceFilter::StringFilterPolicy) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig_TriggerConfig::TriggerMode>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig_TriggerConfig::TriggerMode) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig_BufferConfig::FillPolicy>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig_BufferConfig::FillPolicy) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_SysStats_PsiSample::PsiResource>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_SysStats_PsiSample::PsiResource) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::VmstatCounters>(protozero::Message&, unsigned int, perfetto::protos::pbzero::VmstatCounters) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::MeminfoCounters>(protozero::Message&, unsigned int, perfetto::protos::pbzero::MeminfoCounters) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_KernelWakelockData_Wakelock::Type>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_KernelWakelockData_Wakelock::Type) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::AndroidLogId>(protozero::Message&, unsigned int, perfetto::protos::pbzero::AndroidLogId) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::AndroidLogPriority>(protozero::Message&, unsigned int, perfetto::protos::pbzero::AndroidLogPriority) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_AndroidPowerConfig::BatteryCounters>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_AndroidPowerConfig::BatteryCounters) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ProcessStatsConfig::Quirks>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ProcessStatsConfig::Quirks) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::AtomId>(protozero::Message&, unsigned int, perfetto::protos::pbzero::AtomId) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_SysStatsConfig::StatCounters>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_SysStatsConfig::StatCounters) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_Profiling::CpuMode>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_Profiling::CpuMode) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_Profiling::StackUnwindError>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_Profiling::StackUnwindError) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_PerfSample::SampleSkipReason>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_PerfSample::SampleSkipReason) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_PerfSample_ProducerEvent::DataSourceStopReason>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_PerfSample_ProducerEvent::DataSourceStopReason) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ProfilePacket_ProcessHeapSamples::ClientError>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ProfilePacket_ProcessHeapSamples::ClientError) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ThreadDescriptor::ChromeThreadType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ThreadDescriptor::ChromeThreadType) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TrackEvent::Type>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TrackEvent::Type) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TrackEvent_LegacyEvent::FlowDirection>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TrackEvent_LegacyEvent::FlowDirection) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TrackEvent_LegacyEvent::InstantEventScope>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TrackEvent_LegacyEvent::InstantEventScope) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_DebugAnnotation_NestedValue::NestedType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_DebugAnnotation_NestedValue::NestedType) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_FieldDescriptorProto::Label>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_FieldDescriptorProto::Label) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_FieldDescriptorProto::Type>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_FieldDescriptorProto::Type) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ResetTraceProcessorArgs::DropTrackEventDataBefore>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ResetTraceProcessorArgs::DropTrackEventDataBefore) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ResetTraceProcessorArgs::ParsingMode>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ResetTraceProcessorArgs::ParsingMode) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::MetatraceCategories>(protozero::Message&, unsigned int, perfetto::protos::pbzero::MetatraceCategories) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ComputeMetricArgs::ResultFormat>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ComputeMetricArgs::ResultFormat) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TraceProcessorRpc::TraceProcessorMethod>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TraceProcessorRpc::TraceProcessorMethod) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeLegacyIpc::MessageClass>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeLegacyIpc::MessageClass) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeProcessDescriptor::ProcessType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeProcessDescriptor::ProcessType) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeThreadDescriptor::ThreadType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeThreadDescriptor::ThreadType) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_MemoryTrackerSnapshot::LevelOfDetail>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_MemoryTrackerSnapshot::LevelOfDetail) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_MemoryTrackerSnapshot_ProcessSnapshot_MemoryNode_MemoryNodeEntry::Units>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_MemoryTrackerSnapshot_ProcessSnapshot_MemoryNode_MemoryNodeEntry::Units) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_BackgroundTracingMetadata_TriggerRule::TriggerType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_BackgroundTracingMetadata_TriggerRule::TriggerType) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_BackgroundTracingMetadata_TriggerRule_NamedRule::EventType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_BackgroundTracingMetadata_TriggerRule_NamedRule::EventType) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::TrafficDirection>(protozero::Message&, unsigned int, perfetto::protos::pbzero::TrafficDirection) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_PerfEvents::Counter>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_PerfEvents::Counter) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_PerfEvents::PerfClock>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_PerfEvents::PerfClock) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeLegacyJsonTrace::TraceType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeLegacyJsonTrace::TraceType) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeTracedValue::NestedType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeTracedValue::NestedType) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_CounterDescriptor::BuiltinCounterType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_CounterDescriptor::BuiltinCounterType) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_CounterDescriptor::Unit>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_CounterDescriptor::Unit) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_BeginImplFrameArgs::State>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_BeginImplFrameArgs::State) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_BeginFrameArgs::BeginFrameArgsType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_BeginFrameArgs::BeginFrameArgsType) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MinorState::TreePriority>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MinorState::TreePriority) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MinorState::ScrollHandlerState>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MinorState::ScrollHandlerState) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::ChromeCompositorSchedulerAction>(protozero::Message&, unsigned int, perfetto::protos::pbzero::ChromeCompositorSchedulerAction) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MajorState::BeginImplFrameState>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MajorState::BeginImplFrameState) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MajorState::BeginMainFrameState>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MajorState::BeginMainFrameState) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MajorState::LayerTreeFrameSinkState>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MajorState::LayerTreeFrameSinkState) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MajorState::ForcedRedrawOnTimeoutState>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MajorState::ForcedRedrawOnTimeoutState) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorSchedulerState::BeginImplFrameDeadlineMode>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorSchedulerState::BeginImplFrameDeadlineMode) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_LogMessage::Priority>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_LogMessage::Priority) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ProcessDescriptor::ChromeProcessType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ProcessDescriptor::ChromeProcessType) Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TrackDescriptor::ChildTracksOrdering>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TrackDescriptor::ChildTracksOrdering) |
151 | | }; |
152 | | |
153 | | template <> |
154 | | struct FieldWriter<proto_utils::ProtoSchemaType::kString> { |
155 | | inline static void Append(Message& message, |
156 | | uint32_t field_id, |
157 | | const char* data, |
158 | 0 | size_t size) { |
159 | 0 | message.AppendBytes(field_id, data, size); |
160 | 0 | } |
161 | | |
162 | | inline static void Append(Message& message, |
163 | | uint32_t field_id, |
164 | 2.70k | const std::string& value) { |
165 | 2.70k | message.AppendBytes(field_id, value.data(), value.size()); |
166 | 2.70k | } |
167 | | }; |
168 | | |
169 | | template <> |
170 | | struct FieldWriter<proto_utils::ProtoSchemaType::kBytes> { |
171 | | inline static void Append(Message& message, |
172 | | uint32_t field_id, |
173 | | const uint8_t* data, |
174 | 0 | size_t size) { |
175 | 0 | message.AppendBytes(field_id, data, size); |
176 | 0 | } |
177 | | |
178 | | inline static void Append(Message& message, |
179 | | uint32_t field_id, |
180 | 0 | const std::string& value) { |
181 | 0 | message.AppendBytes(field_id, value.data(), value.size()); |
182 | 0 | } |
183 | | }; |
184 | | |
185 | | } // namespace internal |
186 | | } // namespace protozero |
187 | | |
188 | | #endif // INCLUDE_PERFETTO_PROTOZERO_FIELD_WRITER_H_ |