1 #ifndef PROTOBUF_BENCHMARKS_UTIL_SCHEMA_PROTO2_TO_PROTO3_UTIL_H_
2 #define PROTOBUF_BENCHMARKS_UTIL_SCHEMA_PROTO2_TO_PROTO3_UTIL_H_
4 #include "google/protobuf/message.h"
5 #include "google/protobuf/descriptor.h"
6 #include "google/protobuf/descriptor.pb.h"
12 using google::protobuf::DescriptorProto;
14 using google::protobuf::FieldDescriptorProto;
16 using google::protobuf::EnumValueDescriptorProto;
22 class SchemaGroupStripper {
27 for (
int i =
file->mutable_message_type()->
size() - 1;
i >= 0;
i--) {
29 file->mutable_message_type()->DeleteSubrange(
i, 1);
34 for (
int i =
file->mutable_extension()->
size() - 1;
i >= 0;
i--) {
39 file->mutable_extension()->DeleteSubrange(
i, 1);
47 &&
descriptor->options().message_set_wire_format()) {
85 for (
int i = 0;
i <
file->enum_type_size();
i++) {
88 for (
int i = 0;
i <
file->mutable_message_type()->
size();
i++) {
96 bool has_zero =
false;
102 enum_type->mutable_value(0)->CopyFrom(temp_enum_value);
109 for (
int i =
enum_type->mutable_value()->size() - 1;
i > 0;
i--) {
113 enum_type->mutable_value(0)->set_number(0);
114 enum_type->mutable_value(0)->set_name(
"ADDED_ZERO_VALUE_" +
133 class ExtensionStripper {
136 for (
int i = 0;
i <
file->mutable_message_type()->
size();
i++) {
139 file->mutable_extension()->Clear();
152 class FieldScrubber {
155 for (
int i = 0;
i <
file->mutable_message_type()->
size();
i++) {
158 for (
int i = 0;
i <
file->mutable_extension()->
size();
i++) {
159 file->mutable_extension(
i)->clear_default_value();
161 file->mutable_extension(
i)->clear_label();
194 #endif // PROTOBUF_BENCHMARKS_UTIL_SCHEMA_PROTO2_TO_PROTO3_UTIL_H_