Trace Processor: add --httpd

This CL adds a built-in HTTP RPC interface to
TraceProcessor. It allows to use a native trace
proocessor with the UI over HTTP.
It also move the RPC-related classes in a rpc/ subdir.

Bug: 143074239
Change-Id: I05416f8f604bafa4a9d26dbe0ff0db25fdd4d555
diff --git a/BUILD b/BUILD
index 583f9c2..aa10c0d 100644
--- a/BUILD
+++ b/BUILD
@@ -587,6 +587,24 @@
     ],
 )
 
+# GN target: //src/trace_processor/rpc:httpd
+filegroup(
+    name = "src_trace_processor_rpc_httpd",
+    srcs = [
+        "src/trace_processor/rpc/httpd.cc",
+        "src/trace_processor/rpc/httpd.h",
+    ],
+)
+
+# GN target: //src/trace_processor/rpc:rpc
+filegroup(
+    name = "src_trace_processor_rpc_rpc",
+    srcs = [
+        "src/trace_processor/rpc/rpc.cc",
+        "src/trace_processor/rpc/rpc.h",
+    ],
+)
+
 # GN target: //src/trace_processor/sqlite:sqlite
 filegroup(
     name = "src_trace_processor_sqlite_sqlite",
@@ -1971,6 +1989,22 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace_processor:zero
+perfetto_proto_library(
+    name = "protos_perfetto_trace_processor_protos",
+    srcs = [
+        "protos/perfetto/trace_processor/trace_processor.proto",
+    ],
+)
+
+# GN target: //protos/perfetto/trace_processor:zero
+perfetto_cc_protozero_library(
+    name = "protos_perfetto_trace_processor_zero",
+    deps = [
+        ":protos_perfetto_trace_processor_protos",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/profiling:lite
 perfetto_cc_proto_library(
     name = "protos_perfetto_trace_profiling_lite",
@@ -2382,11 +2416,14 @@
         ":include_perfetto_protozero_protozero",
         ":include_perfetto_trace_processor_trace_processor",
         ":src_base_base",
+        ":src_base_unix_socket",
         ":src_protozero_protozero",
         ":src_trace_processor_common",
         ":src_trace_processor_db_lib",
         ":src_trace_processor_lib",
         ":src_trace_processor_metrics_lib",
+        ":src_trace_processor_rpc_httpd",
+        ":src_trace_processor_rpc_rpc",
         ":src_trace_processor_sqlite_sqlite",
         ":src_trace_processor_tables_tables",
     ],
@@ -2417,6 +2454,7 @@
                ":protos_perfetto_trace_perfetto_zero",
                ":protos_perfetto_trace_power_zero",
                ":protos_perfetto_trace_processor_metrics_impl_zero",
+               ":protos_perfetto_trace_processor_zero",
                ":protos_perfetto_trace_profiling_zero",
                ":protos_perfetto_trace_ps_zero",
                ":protos_perfetto_trace_sys_stats_zero",