#include "src/trace_processor/util/proto_profiler.h"
#include <utility>
#include "perfetto/base/logging.h"
#include "perfetto/ext/base/string_utils.h"
#include "perfetto/protozero/packed_repeated_fields.h"
#include "perfetto/protozero/proto_decoder.h"
#include "perfetto/protozero/proto_utils.h"
namespace perfetto {
namespace trace_processor {
namespace util {
namespace {
FieldDescriptorProto;
ProtoWireType;
std::string GetFieldTypeName(const std::string& full_type_name) { … }
std::string GetLeafTypeName(uint32_t type_id) { … }
}
SizeProfileComputer::Field::Field(uint32_t field_idx_in,
const FieldDescriptor* field_descriptor_in,
uint32_t type_in,
const ProtoDescriptor* proto_descriptor_in)
: … { … }
std::string SizeProfileComputer::Field::field_name() const { … }
std::string SizeProfileComputer::Field::type_name() const { … }
SizeProfileComputer::SizeProfileComputer(DescriptorPool* pool,
const std::string& message_type)
: … { … }
void SizeProfileComputer::Reset(const uint8_t* ptr, size_t size) { … }
std::optional<size_t> SizeProfileComputer::GetNext() { … }
size_t SizeProfileComputer::GetFieldSize(const protozero::Field& f) { … }
}
}
}