diff options
author | Kean Mariotti <keanmariotti@google.com> | 2024-04-17 07:17:36 +0000 |
---|---|---|
committer | Kean Mariotti <keanmariotti@google.com> | 2024-04-18 10:54:04 +0000 |
commit | 18a165ea7ec596e1555c1a82f03f4bc960bfc681 (patch) | |
tree | 48e82c8963b7ab59805051802af6ea80b8747639 | |
parent | acc326408ca5a5abe1adf42c361f3eb168061646 (diff) | |
download | base-18a165ea7ec596e1555c1a82f03f4bc960bfc681.tar.gz |
cleanup messages allow list
- Pass around container by reference instead of value
(avoid unneeded deep-copies)
- Use std::unordered_set instead of std::set (no need to be sorted)
- Rename variable "messages_to_compile" to "messages_allowlist"
to reduce confusion with other message lists in the code
- Remove raw pointer
Bug: 321668269
Test: presubmit
Change-Id: I43eaf5c1db3d15b066a95f34373211aadf6417b4
-rw-r--r-- | tools/streaming_proto/java/java_proto_stream_code_generator.cpp | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/tools/streaming_proto/java/java_proto_stream_code_generator.cpp b/tools/streaming_proto/java/java_proto_stream_code_generator.cpp index 9d61111fb5bd..6e0411757ede 100644 --- a/tools/streaming_proto/java/java_proto_stream_code_generator.cpp +++ b/tools/streaming_proto/java/java_proto_stream_code_generator.cpp @@ -23,6 +23,7 @@ #include <map> #include <sstream> #include <string> +#include <unordered_set> #include "Errors.h" @@ -214,7 +215,7 @@ static void write_file(CodeGeneratorResponse* response, const FileDescriptorProt */ static void write_multiple_files(CodeGeneratorResponse* response, const FileDescriptorProto& file_descriptor, - set<string> messages_to_compile) { + const unordered_set<string>& messages_allowlist) { // If there is anything to put in the outer class file, create one if (file_descriptor.enum_type_size() > 0) { vector<EnumDescriptorProto> enums; @@ -222,7 +223,7 @@ static void write_multiple_files(CodeGeneratorResponse* response, for (int i = 0; i < N; i++) { auto enum_full_name = file_descriptor.package() + "." + file_descriptor.enum_type(i).name(); - if (!messages_to_compile.empty() && !messages_to_compile.count(enum_full_name)) { + if (!messages_allowlist.empty() && !messages_allowlist.count(enum_full_name)) { continue; } enums.push_back(file_descriptor.enum_type(i)); @@ -230,7 +231,7 @@ static void write_multiple_files(CodeGeneratorResponse* response, vector<DescriptorProto> messages; - if (messages_to_compile.empty() || !enums.empty()) { + if (messages_allowlist.empty() || !enums.empty()) { write_file(response, file_descriptor, make_file_name(file_descriptor, make_outer_class_name(file_descriptor)), true, enums, messages); @@ -246,12 +247,12 @@ static void write_multiple_files(CodeGeneratorResponse* response, auto message_full_name = file_descriptor.package() + "." + file_descriptor.message_type(i).name(); - if (!messages_to_compile.empty() && !messages_to_compile.count(message_full_name)) { + if (!messages_allowlist.empty() && !messages_allowlist.count(message_full_name)) { continue; } messages.push_back(file_descriptor.message_type(i)); - if (messages_to_compile.empty() || !messages.empty()) { + if (messages_allowlist.empty() || !messages.empty()) { write_file(response, file_descriptor, make_file_name(file_descriptor, file_descriptor.message_type(i).name()), false, enums, messages); @@ -261,14 +262,14 @@ static void write_multiple_files(CodeGeneratorResponse* response, static void write_single_file(CodeGeneratorResponse* response, const FileDescriptorProto& file_descriptor, - set<string> messages_to_compile) { + const unordered_set<string>& messages_allowlist) { int N; vector<EnumDescriptorProto> enums; N = file_descriptor.enum_type_size(); for (int i = 0; i < N; i++) { auto enum_full_name = file_descriptor.package() + "." + file_descriptor.enum_type(i).name(); - if (!messages_to_compile.empty() && !messages_to_compile.count(enum_full_name)) { + if (!messages_allowlist.empty() && !messages_allowlist.count(enum_full_name)) { continue; } @@ -281,14 +282,14 @@ static void write_single_file(CodeGeneratorResponse* response, auto message_full_name = file_descriptor.package() + "." + file_descriptor.message_type(i).name(); - if (!messages_to_compile.empty() && !messages_to_compile.count(message_full_name)) { + if (!messages_allowlist.empty() && !messages_allowlist.count(message_full_name)) { continue; } messages.push_back(file_descriptor.message_type(i)); } - if (messages_to_compile.empty() || !enums.empty() || !messages.empty()) { + if (messages_allowlist.empty() || !enums.empty() || !messages.empty()) { write_file(response, file_descriptor, make_file_name(file_descriptor, make_outer_class_name(file_descriptor)), true, enums, messages); @@ -296,7 +297,7 @@ static void write_single_file(CodeGeneratorResponse* response, } static void parse_args_string(stringstream args_string_stream, - set<string>* messages_to_compile_out) { + unordered_set<string>& messages_allowlist_out) { string line; while (getline(args_string_stream, line, ';')) { stringstream line_ss(line); @@ -305,7 +306,7 @@ static void parse_args_string(stringstream args_string_stream, if (arg_name == "include_filter") { string full_message_name; while (getline(line_ss, full_message_name, ',')) { - messages_to_compile_out->insert(full_message_name); + messages_allowlist_out.insert(full_message_name); } } else { ERRORS.Add(UNKNOWN_FILE, UNKNOWN_LINE, "Unexpected argument '%s'.", arg_name.c_str()); @@ -316,10 +317,10 @@ static void parse_args_string(stringstream args_string_stream, CodeGeneratorResponse generate_java_protostream_code(CodeGeneratorRequest request) { CodeGeneratorResponse response; - set<string> messages_to_compile; + unordered_set<string> messages_allowlist; auto request_params = request.parameter(); if (!request_params.empty()) { - parse_args_string(stringstream(request_params), &messages_to_compile); + parse_args_string(stringstream(request_params), messages_allowlist); } // Build the files we need. @@ -328,9 +329,9 @@ CodeGeneratorResponse generate_java_protostream_code(CodeGeneratorRequest reques const FileDescriptorProto& file_descriptor = request.proto_file(i); if (should_generate_for_file(request, file_descriptor.name())) { if (file_descriptor.options().java_multiple_files()) { - write_multiple_files(&response, file_descriptor, messages_to_compile); + write_multiple_files(&response, file_descriptor, messages_allowlist); } else { - write_single_file(&response, file_descriptor, messages_to_compile); + write_single_file(&response, file_descriptor, messages_allowlist); } } } |