summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKean Mariotti <keanmariotti@google.com>2024-04-17 07:17:36 +0000
committerKean Mariotti <keanmariotti@google.com>2024-04-18 10:54:04 +0000
commit18a165ea7ec596e1555c1a82f03f4bc960bfc681 (patch)
tree48e82c8963b7ab59805051802af6ea80b8747639
parentacc326408ca5a5abe1adf42c361f3eb168061646 (diff)
downloadbase-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.cpp31
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);
}
}
}