Support standalone logcat parsing

Add support to parse logcat files outside of bug reports. For that we
refactored the parsing code a bit and split it into a tokenization and
a parsing (after sorting) phase. The sorting phase is now needed as we
need to sort the logcat events with events from other trace types.

This cl introduces some logic changes too:

1. When deduplication logcat and dumpstate events we only match each
event once. E.g.
Logcat
ts_1 "Msg 1"

Dumpstate
ts_1 "Msg 1" < This event is not emitted as it is a duplicate
ts_1 "Msg 1" < This event used to be not emitted but is now emitted
               (there is no match for it in the locat)

2. The dedup logic used to ignore the event priority when matching. It
now takes that into account.


Change-Id: Idab950a1e2b1a20451821e2a443335e8f7947409
diff --git a/Android.bp b/Android.bp
index 2f4181b..d16d465 100644
--- a/Android.bp
+++ b/Android.bp
@@ -2397,6 +2397,7 @@
         ":perfetto_src_trace_processor_db_minimal",
         ":perfetto_src_trace_processor_export_json",
         ":perfetto_src_trace_processor_importers_android_bugreport_android_bugreport",
+        ":perfetto_src_trace_processor_importers_android_bugreport_android_log_event",
         ":perfetto_src_trace_processor_importers_common_common",
         ":perfetto_src_trace_processor_importers_common_parser_types",
         ":perfetto_src_trace_processor_importers_common_trace_parser_hdr",
@@ -12083,8 +12084,19 @@
 filegroup {
     name: "perfetto_src_trace_processor_importers_android_bugreport_android_bugreport",
     srcs: [
-        "src/trace_processor/importers/android_bugreport/android_bugreport_parser.cc",
-        "src/trace_processor/importers/android_bugreport/android_log_parser.cc",
+        "src/trace_processor/importers/android_bugreport/android_bugreport_reader.cc",
+        "src/trace_processor/importers/android_bugreport/android_dumpstate_reader.cc",
+        "src/trace_processor/importers/android_bugreport/android_log_event_parser_impl.cc",
+        "src/trace_processor/importers/android_bugreport/android_log_reader.cc",
+        "src/trace_processor/importers/android_bugreport/chunked_line_reader.cc",
+    ],
+}
+
+// GN: //src/trace_processor/importers/android_bugreport:android_log_event
+filegroup {
+    name: "perfetto_src_trace_processor_importers_android_bugreport_android_log_event",
+    srcs: [
+        "src/trace_processor/importers/android_bugreport/android_log_event.cc",
     ],
 }
 
@@ -12092,7 +12104,7 @@
 filegroup {
     name: "perfetto_src_trace_processor_importers_android_bugreport_unittests",
     srcs: [
-        "src/trace_processor/importers/android_bugreport/android_log_parser_unittest.cc",
+        "src/trace_processor/importers/android_bugreport/android_log_unittest.cc",
     ],
 }
 
@@ -15129,6 +15141,7 @@
         ":perfetto_src_trace_processor_db_unittests",
         ":perfetto_src_trace_processor_export_json",
         ":perfetto_src_trace_processor_importers_android_bugreport_android_bugreport",
+        ":perfetto_src_trace_processor_importers_android_bugreport_android_log_event",
         ":perfetto_src_trace_processor_importers_android_bugreport_unittests",
         ":perfetto_src_trace_processor_importers_common_common",
         ":perfetto_src_trace_processor_importers_common_parser_types",
@@ -16165,6 +16178,7 @@
         ":perfetto_src_trace_processor_db_minimal",
         ":perfetto_src_trace_processor_export_json",
         ":perfetto_src_trace_processor_importers_android_bugreport_android_bugreport",
+        ":perfetto_src_trace_processor_importers_android_bugreport_android_log_event",
         ":perfetto_src_trace_processor_importers_common_common",
         ":perfetto_src_trace_processor_importers_common_parser_types",
         ":perfetto_src_trace_processor_importers_common_trace_parser_hdr",
@@ -16401,6 +16415,7 @@
         ":perfetto_src_trace_processor_db_column_column",
         ":perfetto_src_trace_processor_db_compare",
         ":perfetto_src_trace_processor_db_minimal",
+        ":perfetto_src_trace_processor_importers_android_bugreport_android_log_event",
         ":perfetto_src_trace_processor_importers_common_common",
         ":perfetto_src_trace_processor_importers_common_parser_types",
         ":perfetto_src_trace_processor_importers_common_trace_parser_hdr",
@@ -16565,6 +16580,7 @@
         ":perfetto_src_trace_processor_db_minimal",
         ":perfetto_src_trace_processor_export_json",
         ":perfetto_src_trace_processor_importers_android_bugreport_android_bugreport",
+        ":perfetto_src_trace_processor_importers_android_bugreport_android_log_event",
         ":perfetto_src_trace_processor_importers_common_common",
         ":perfetto_src_trace_processor_importers_common_parser_types",
         ":perfetto_src_trace_processor_importers_common_trace_parser_hdr",