#ifndef BASE_TRACE_EVENT_INTERNED_ARGS_HELPER_H_
#define BASE_TRACE_EVENT_INTERNED_ARGS_HELPER_H_
#include <optional>
#include <string>
#include "base/base_export.h"
#include "base/containers/span.h"
#include "base/hash/hash.h"
#include "base/location.h"
#include "base/profiler/module_cache.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
#include "third_party/perfetto/include/perfetto/tracing/track_event_interned_data_index.h"
#include "third_party/perfetto/protos/perfetto/trace/interned_data/interned_data.pbzero.h"
namespace base {
namespace trace_event {
struct BASE_EXPORT TraceSourceLocation { … };
struct BASE_EXPORT UnsymbolizedSourceLocation { … };
}
}
namespace std {
template <>
struct hash<base::trace_event::TraceSourceLocation> { … };
template <>
struct hash<base::trace_event::UnsymbolizedSourceLocation> { … };
}
namespace base {
namespace trace_event {
struct BASE_EXPORT InternedSourceLocation
: public perfetto::TrackEventInternedDataIndex<
InternedSourceLocation,
perfetto::protos::pbzero::InternedData::kSourceLocationsFieldNumber,
TraceSourceLocation> { … };
struct BASE_EXPORT InternedLogMessage
: public perfetto::TrackEventInternedDataIndex<
InternedLogMessage,
perfetto::protos::pbzero::InternedData::kLogMessageBodyFieldNumber,
std::string> { … };
struct BASE_EXPORT InternedBuildId
: public perfetto::TrackEventInternedDataIndex<
InternedBuildId,
perfetto::protos::pbzero::InternedData::kBuildIdsFieldNumber,
std::string> { … };
struct BASE_EXPORT InternedMappingPath
: public perfetto::TrackEventInternedDataIndex<
InternedMappingPath,
perfetto::protos::pbzero::InternedData::kMappingPathsFieldNumber,
std::string> { … };
struct BASE_EXPORT InternedMapping
: public perfetto::TrackEventInternedDataIndex<
InternedMapping,
perfetto::protos::pbzero::InternedData::kMappingsFieldNumber,
const base::ModuleCache::Module*> { … };
struct BASE_EXPORT InternedUnsymbolizedSourceLocation
: public perfetto::TrackEventInternedDataIndex<
InternedUnsymbolizedSourceLocation,
perfetto::protos::pbzero::InternedData::
kUnsymbolizedSourceLocationsFieldNumber,
uintptr_t> { … };
}
}
#endif