diff options
Diffstat (limited to 'third_party/protobuf/3.6.0/benchmarks/util/protoc-gen-gogoproto.cc')
-rw-r--r-- | third_party/protobuf/3.6.0/benchmarks/util/protoc-gen-gogoproto.cc | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/third_party/protobuf/3.6.0/benchmarks/util/protoc-gen-gogoproto.cc b/third_party/protobuf/3.6.0/benchmarks/util/protoc-gen-gogoproto.cc deleted file mode 100644 index bfa6a5e54a..0000000000 --- a/third_party/protobuf/3.6.0/benchmarks/util/protoc-gen-gogoproto.cc +++ /dev/null @@ -1,103 +0,0 @@ -#include "google/protobuf/compiler/code_generator.h" -#include "google/protobuf/io/zero_copy_stream.h" -#include "google/protobuf/io/printer.h" -#include "google/protobuf/descriptor.h" -#include "google/protobuf/descriptor.pb.h" -#include "schema_proto2_to_proto3_util.h" - -#include "google/protobuf/compiler/plugin.h" - -using google::protobuf::FileDescriptorProto; -using google::protobuf::FileDescriptor; -using google::protobuf::DescriptorPool; -using google::protobuf::io::Printer; -using google::protobuf::util::SchemaGroupStripper; -using google::protobuf::util::SchemaAddZeroEnumValue; - -namespace google { -namespace protobuf { -namespace compiler { - -namespace { - -string StripProto(string filename) { - if (filename.substr(filename.size() - 11) == ".protodevel") { - // .protodevel - return filename.substr(0, filename.size() - 11); - } else { - // .proto - return filename.substr(0, filename.size() - 6); - } -} - -DescriptorPool new_pool_; - -} // namespace - -class GoGoProtoGenerator : public CodeGenerator { - public: - virtual bool GenerateAll(const std::vector<const FileDescriptor*>& files, - const string& parameter, - GeneratorContext* context, - string* error) const { - for (int i = 0; i < files.size(); i++) { - for (auto file : files) { - bool can_generate = - (new_pool_.FindFileByName(file->name()) == nullptr); - for (int j = 0; j < file->dependency_count(); j++) { - can_generate &= (new_pool_.FindFileByName( - file->dependency(j)->name()) != nullptr); - } - for (int j = 0; j < file->public_dependency_count(); j++) { - can_generate &= (new_pool_.FindFileByName( - file->public_dependency(j)->name()) != nullptr); - } - for (int j = 0; j < file->weak_dependency_count(); j++) { - can_generate &= (new_pool_.FindFileByName( - file->weak_dependency(j)->name()) != nullptr); - } - if (can_generate) { - Generate(file, parameter, context, error); - break; - } - } - } - - return true; - } - - virtual bool Generate(const FileDescriptor* file, - const string& parameter, - GeneratorContext* context, - string* error) const { - FileDescriptorProto new_file; - file->CopyTo(&new_file); - SchemaGroupStripper::StripFile(file, &new_file); - - SchemaAddZeroEnumValue enum_scrubber; - enum_scrubber.ScrubFile(&new_file); - - string filename = file->name(); - string basename = StripProto(filename); - - std::vector<std::pair<string,string>> option_pairs; - ParseGeneratorParameter(parameter, &option_pairs); - - std::unique_ptr<google::protobuf::io::ZeroCopyOutputStream> output( - context->Open(basename + ".proto")); - string content = new_pool_.BuildFile(new_file)->DebugString(); - Printer printer(output.get(), '$'); - printer.WriteRaw(content.c_str(), content.size()); - - return true; - } -}; - -} // namespace compiler -} // namespace protobuf -} // namespace google - -int main(int argc, char* argv[]) { - google::protobuf::compiler::GoGoProtoGenerator generator; - return google::protobuf::compiler::PluginMain(argc, argv, &generator); -} |