Proto filtering: add core MessageFilter and FilterUtil
This CL adds:
- The core MessageFilter class, which will take care
of filtering on-device.
- The FilterUtil class and related tools/proto_filter
to generate / test filters offline on the host.
Design doc: go/trace-filtering
Bug: 181306741
Test: see new test and fuzzers introduced
Change-Id: I516669d3b6eee746ab306b1f0edd23e89bfbafb3
diff --git a/Android.bp b/Android.bp
index 7f7656a..f81a6a7 100644
--- a/Android.bp
+++ b/Android.bp
@@ -7290,12 +7290,30 @@
],
}
+// GN: //src/protozero/filtering:filter_util
+filegroup {
+ name: "perfetto_src_protozero_filtering_filter_util",
+ srcs: [
+ "src/protozero/filtering/filter_util.cc",
+ ],
+}
+
+// GN: //src/protozero/filtering:message_filter
+filegroup {
+ name: "perfetto_src_protozero_filtering_message_filter",
+ srcs: [
+ "src/protozero/filtering/message_filter.cc",
+ ],
+}
+
// GN: //src/protozero/filtering:unittests
filegroup {
name: "perfetto_src_protozero_filtering_unittests",
srcs: [
"src/protozero/filtering/filter_bytecode_generator_unittest.cc",
"src/protozero/filtering/filter_bytecode_parser_unittest.cc",
+ "src/protozero/filtering/filter_util_unittest.cc",
+ "src/protozero/filtering/message_filter_unittest.cc",
"src/protozero/filtering/message_tokenizer_unittest.cc",
],
}
@@ -9033,6 +9051,8 @@
":perfetto_src_protozero_filtering_bytecode_common",
":perfetto_src_protozero_filtering_bytecode_generator",
":perfetto_src_protozero_filtering_bytecode_parser",
+ ":perfetto_src_protozero_filtering_filter_util",
+ ":perfetto_src_protozero_filtering_message_filter",
":perfetto_src_protozero_filtering_unittests",
":perfetto_src_protozero_protozero",
":perfetto_src_protozero_testing_messages_cpp_gen",
@@ -9126,6 +9146,7 @@
"libbase",
"liblog",
"libprocinfo",
+ "libprotobuf-cpp-full",
"libprotobuf-cpp-lite",
"libsqlite",
"libunwindstack",