aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/protobuf/3.6.0/benchmarks/util/gogo_data_scrubber.cc
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/protobuf/3.6.0/benchmarks/util/gogo_data_scrubber.cc')
-rw-r--r--third_party/protobuf/3.6.0/benchmarks/util/gogo_data_scrubber.cc105
1 files changed, 0 insertions, 105 deletions
diff --git a/third_party/protobuf/3.6.0/benchmarks/util/gogo_data_scrubber.cc b/third_party/protobuf/3.6.0/benchmarks/util/gogo_data_scrubber.cc
deleted file mode 100644
index fb9af6e2f2..0000000000
--- a/third_party/protobuf/3.6.0/benchmarks/util/gogo_data_scrubber.cc
+++ /dev/null
@@ -1,105 +0,0 @@
-#include "benchmarks.pb.h"
-#include "datasets/google_message1/proto2/benchmark_message1_proto2.pb.h"
-#include "datasets/google_message1/proto3/benchmark_message1_proto3.pb.h"
-#include "datasets/google_message2/benchmark_message2.pb.h"
-#include "datasets/google_message3/benchmark_message3.pb.h"
-#include "datasets/google_message4/benchmark_message4.pb.h"
-
-#include "google/protobuf/message.h"
-#include "google/protobuf/descriptor.h"
-
-#include <fstream>
-
-using google::protobuf::FieldDescriptor;
-using google::protobuf::Message;
-using google::protobuf::Reflection;
-
-
-class DataGroupStripper {
- public:
- static void StripMessage(Message *message) {
- std::vector<const FieldDescriptor*> set_fields;
- const Reflection* reflection = message->GetReflection();
- reflection->ListFields(*message, &set_fields);
-
- for (size_t i = 0; i < set_fields.size(); i++) {
- const FieldDescriptor* field = set_fields[i];
- if (field->type() == FieldDescriptor::TYPE_GROUP) {
- reflection->ClearField(message, field);
- }
- if (field->type() == FieldDescriptor::TYPE_MESSAGE) {
- if (field->is_repeated()) {
- for (int j = 0; j < reflection->FieldSize(*message, field); j++) {
- StripMessage(reflection->MutableRepeatedMessage(message, field, j));
- }
- } else {
- StripMessage(reflection->MutableMessage(message, field));
- }
- }
- }
-
- reflection->MutableUnknownFields(message)->Clear();
- }
-};
-
-std::string ReadFile(const std::string& name) {
- std::ifstream file(name.c_str());
- GOOGLE_CHECK(file.is_open()) << "Couldn't find file '"
- << name
- << "', please make sure you are running this command from the benchmarks"
- << " directory.\n";
- return std::string((std::istreambuf_iterator<char>(file)),
- std::istreambuf_iterator<char>());
-}
-
-int main(int argc, char *argv[]) {
- if (argc % 2 == 0 || argc == 1) {
- std::cerr << "Usage: [input_files] [output_file_names] where " <<
- "input_files are one to one mapping to output_file_names." <<
- std::endl;
- return 1;
- }
-
- for (int i = argc / 2; i > 0; i--) {
- const std::string &input_file = argv[i];
- const std::string &output_file = argv[i + argc / 2];
-
- std::cerr << "Generating " << input_file
- << " to " << output_file << std::endl;
- benchmarks::BenchmarkDataset dataset;
- Message* message;
- std::string dataset_payload = ReadFile(input_file);
- GOOGLE_CHECK(dataset.ParseFromString(dataset_payload))
- << "Can' t parse data file " << input_file;
-
- if (dataset.message_name() == "benchmarks.proto3.GoogleMessage1") {
- message = new benchmarks::proto3::GoogleMessage1;
- } else if (dataset.message_name() == "benchmarks.proto2.GoogleMessage1") {
- message = new benchmarks::proto2::GoogleMessage1;
- } else if (dataset.message_name() == "benchmarks.proto2.GoogleMessage2") {
- message = new benchmarks::proto2::GoogleMessage2;
- } else if (dataset.message_name() ==
- "benchmarks.google_message3.GoogleMessage3") {
- message = new benchmarks::google_message3::GoogleMessage3;
- } else if (dataset.message_name() ==
- "benchmarks.google_message4.GoogleMessage4") {
- message = new benchmarks::google_message4::GoogleMessage4;
- } else {
- std::cerr << "Unknown message type: " << dataset.message_name();
- exit(1);
- }
-
- for (int i = 0; i < dataset.payload_size(); i++) {
- message->ParseFromString(dataset.payload(i));
- DataGroupStripper::StripMessage(message);
- dataset.set_payload(i, message->SerializeAsString());
- }
-
- std::ofstream ofs(output_file);
- ofs << dataset.SerializeAsString();
- ofs.close();
- }
-
-
- return 0;
-}