#include "src/trace_processor/importers/json/json_trace_parser_impl.h"
#include <cstdint>
#include <cstring>
#include <optional>
#include <string>
#include <utility>
#include "perfetto/base/build_config.h"
#include "perfetto/base/logging.h"
#include "perfetto/ext/base/hash.h"
#include "perfetto/ext/base/string_utils.h"
#include "perfetto/ext/base/string_view.h"
#include "src/trace_processor/importers/common/event_tracker.h"
#include "src/trace_processor/importers/common/flow_tracker.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/json/json_utils.h"
#include "src/trace_processor/importers/systrace/systrace_line.h"
#include "src/trace_processor/storage/stats.h"
#include "src/trace_processor/storage/trace_storage.h"
#include "src/trace_processor/tables/slice_tables_py.h"
#include "src/trace_processor/types/trace_processor_context.h"
namespace perfetto {
namespace trace_processor {
#if PERFETTO_BUILDFLAG(PERFETTO_TP_JSON)
namespace {
std::optional<uint64_t> MaybeExtractFlowIdentifier(const Json::Value& value,
bool version2) { … }
}
#endif
JsonTraceParserImpl::JsonTraceParserImpl(TraceProcessorContext* context)
: … { … }
JsonTraceParserImpl::~JsonTraceParserImpl() = default;
void JsonTraceParserImpl::ParseSystraceLine(int64_t, SystraceLine line) { … }
void JsonTraceParserImpl::ParseJsonPacket(int64_t timestamp,
std::string string_value) { … }
void JsonTraceParserImpl::MaybeAddFlow(TrackId track_id,
const Json::Value& event) { … }
}
}