#include "src/trace_redaction/collect_timeline_events.h"
#include "src/trace_redaction/process_thread_timeline.h"
#include "src/trace_redaction/trace_redaction_framework.h"
#include "protos/perfetto/trace/ftrace/ftrace_event.pbzero.h"
#include "protos/perfetto/trace/ftrace/ftrace_event_bundle.pbzero.h"
#include "protos/perfetto/trace/ftrace/sched.pbzero.h"
#include "protos/perfetto/trace/ftrace/task.pbzero.h"
#include "protos/perfetto/trace/ps/process_tree.pbzero.h"
#include "protos/perfetto/trace/trace_packet.pbzero.h"
namespace perfetto::trace_redaction {
namespace {
TracePacket;
ProcessTree;
FtraceEvent;
FtraceEventBundle;
SchedProcessFreeFtraceEvent;
TaskNewtaskFtraceEvent;
void MarkOpen(uint64_t ts,
const ProcessTree::Process::Decoder& process,
ProcessThreadTimeline* timeline) { … }
void MarkOpen(uint64_t ts,
const ProcessTree::Thread::Decoder& thread,
ProcessThreadTimeline* timeline) { … }
void MarkClose(const FtraceEvent::Decoder& event,
const SchedProcessFreeFtraceEvent::Decoder process_free,
ProcessThreadTimeline* timeline) { … }
void MarkOpen(const FtraceEvent::Decoder& event,
const TaskNewtaskFtraceEvent::Decoder new_task,
ProcessThreadTimeline* timeline) { … }
void AppendEvents(uint64_t ts,
const ProcessTree::Decoder& tree,
ProcessThreadTimeline* timeline) { … }
void AppendEvents(const FtraceEventBundle::Decoder& ftrace_events,
ProcessThreadTimeline* timeline) { … }
}
base::Status CollectTimelineEvents::Begin(Context* context) const { … }
base::Status CollectTimelineEvents::Collect(const TracePacket::Decoder& packet,
Context* context) const { … }
base::Status CollectTimelineEvents::End(Context* context) const { … }
}