#include "src/trace_processor/importers/proto/proto_trace_parser_impl.h"
#include <cstdint>
#include <cstring>
#include <string>
#include <utility>
#include <vector>
#include "perfetto/base/logging.h"
#include "perfetto/base/status.h"
#include "perfetto/ext/base/metatrace_events.h"
#include "perfetto/ext/base/string_utils.h"
#include "perfetto/ext/base/string_view.h"
#include "perfetto/ext/base/string_writer.h"
#include "perfetto/trace_processor/trace_blob_view.h"
#include "src/trace_processor/containers/null_term_string_view.h"
#include "src/trace_processor/importers/common/args_tracker.h"
#include "src/trace_processor/importers/common/cpu_tracker.h"
#include "src/trace_processor/importers/common/event_tracker.h"
#include "src/trace_processor/importers/common/legacy_v8_cpu_profile_tracker.h"
#include "src/trace_processor/importers/common/metadata_tracker.h"
#include "src/trace_processor/importers/common/parser_types.h"
#include "src/trace_processor/importers/common/process_tracker.h"
#include "src/trace_processor/importers/common/slice_tracker.h"
#include "src/trace_processor/importers/common/track_tracker.h"
#include "src/trace_processor/importers/etw/etw_module.h"
#include "src/trace_processor/importers/ftrace/ftrace_module.h"
#include "src/trace_processor/importers/proto/track_event_module.h"
#include "src/trace_processor/storage/stats.h"
#include "src/trace_processor/storage/trace_storage.h"
#include "src/trace_processor/types/trace_processor_context.h"
#include "src/trace_processor/types/variadic.h"
#include "protos/perfetto/config/trace_config.pbzero.h"
#include "protos/perfetto/trace/chrome/chrome_trace_event.pbzero.h"
#include "protos/perfetto/trace/perfetto/perfetto_metatrace.pbzero.h"
#include "protos/perfetto/trace/trace_packet.pbzero.h"
namespace perfetto::trace_processor {
ProtoTraceParserImpl::ProtoTraceParserImpl(TraceProcessorContext* context)
: … { … }
ProtoTraceParserImpl::~ProtoTraceParserImpl() = default;
void ProtoTraceParserImpl::ParseTracePacket(int64_t ts, TracePacketData data) { … }
void ProtoTraceParserImpl::ParseTrackEvent(int64_t ts, TrackEventData data) { … }
void ProtoTraceParserImpl::ParseEtwEvent(uint32_t cpu,
int64_t ts,
TracePacketData data) { … }
void ProtoTraceParserImpl::ParseFtraceEvent(uint32_t cpu,
int64_t ts,
TracePacketData data) { … }
void ProtoTraceParserImpl::ParseInlineSchedSwitch(uint32_t cpu,
int64_t ts,
InlineSchedSwitch data) { … }
void ProtoTraceParserImpl::ParseInlineSchedWaking(uint32_t cpu,
int64_t ts,
InlineSchedWaking data) { … }
void ProtoTraceParserImpl::ParseLegacyV8ProfileEvent(
int64_t ts,
LegacyV8CpuProfileEvent event) { … }
void ProtoTraceParserImpl::ParseChromeEvents(int64_t ts, ConstBytes blob) { … }
void ProtoTraceParserImpl::ParseMetatraceEvent(int64_t ts, ConstBytes blob) { … }
StringId ProtoTraceParserImpl::GetMetatraceInternedString(uint64_t iid) { … }
}