service: Add support for ObservableEvents.

Adds a Consumer-facing interface for observable events.
Implements a first such event for data source instance state changes.

Bug: 127948038
Change-Id: Ia05cfef7289eb0237b14f0fb7823f63aec7ee95d
diff --git a/Android.bp b/Android.bp
index aa87928..e28d21c 100644
--- a/Android.bp
+++ b/Android.bp
@@ -86,6 +86,7 @@
     "src/tracing/core/id_allocator.cc",
     "src/tracing/core/inode_file_config.cc",
     "src/tracing/core/null_trace_writer.cc",
+    "src/tracing/core/observable_events.cc",
     "src/tracing/core/packet_stream_validator.cc",
     "src/tracing/core/process_stats_config.cc",
     "src/tracing/core/shared_memory_abi.cc",
@@ -290,6 +291,7 @@
     "src/tracing/core/id_allocator.cc",
     "src/tracing/core/inode_file_config.cc",
     "src/tracing/core/null_trace_writer.cc",
+    "src/tracing/core/observable_events.cc",
     "src/tracing/core/packet_stream_validator.cc",
     "src/tracing/core/process_stats_config.cc",
     "src/tracing/core/shared_memory_abi.cc",
@@ -444,6 +446,7 @@
     "src/tracing/core/id_allocator.cc",
     "src/tracing/core/inode_file_config.cc",
     "src/tracing/core/null_trace_writer.cc",
+    "src/tracing/core/observable_events.cc",
     "src/tracing/core/packet_stream_validator.cc",
     "src/tracing/core/process_stats_config.cc",
     "src/tracing/core/shared_memory_abi.cc",
@@ -649,6 +652,7 @@
     "src/tracing/core/id_allocator.cc",
     "src/tracing/core/inode_file_config.cc",
     "src/tracing/core/null_trace_writer.cc",
+    "src/tracing/core/observable_events.cc",
     "src/tracing/core/packet_stream_validator.cc",
     "src/tracing/core/process_stats_config.cc",
     "src/tracing/core/shared_memory_abi.cc",
@@ -736,6 +740,7 @@
   srcs: [
     "protos/perfetto/common/android_log_constants.proto",
     "protos/perfetto/common/commit_data_request.proto",
+    "protos/perfetto/common/observable_events.proto",
     "protos/perfetto/common/sys_stats_counters.proto",
     "protos/perfetto/common/trace_stats.proto",
   ],
@@ -746,6 +751,7 @@
   out: [
     "external/perfetto/protos/perfetto/common/android_log_constants.pb.cc",
     "external/perfetto/protos/perfetto/common/commit_data_request.pb.cc",
+    "external/perfetto/protos/perfetto/common/observable_events.pb.cc",
     "external/perfetto/protos/perfetto/common/sys_stats_counters.pb.cc",
     "external/perfetto/protos/perfetto/common/trace_stats.pb.cc",
   ],
@@ -757,6 +763,7 @@
   srcs: [
     "protos/perfetto/common/android_log_constants.proto",
     "protos/perfetto/common/commit_data_request.proto",
+    "protos/perfetto/common/observable_events.proto",
     "protos/perfetto/common/sys_stats_counters.proto",
     "protos/perfetto/common/trace_stats.proto",
   ],
@@ -767,6 +774,7 @@
   out: [
     "external/perfetto/protos/perfetto/common/android_log_constants.pb.h",
     "external/perfetto/protos/perfetto/common/commit_data_request.pb.h",
+    "external/perfetto/protos/perfetto/common/observable_events.pb.h",
     "external/perfetto/protos/perfetto/common/sys_stats_counters.pb.h",
     "external/perfetto/protos/perfetto/common/trace_stats.pb.h",
   ],
@@ -781,6 +789,7 @@
   srcs: [
     "protos/perfetto/common/android_log_constants.proto",
     "protos/perfetto/common/commit_data_request.proto",
+    "protos/perfetto/common/observable_events.proto",
     "protos/perfetto/common/sys_stats_counters.proto",
     "protos/perfetto/common/trace_stats.proto",
   ],
@@ -792,6 +801,7 @@
   out: [
     "external/perfetto/protos/perfetto/common/android_log_constants.pbzero.cc",
     "external/perfetto/protos/perfetto/common/commit_data_request.pbzero.cc",
+    "external/perfetto/protos/perfetto/common/observable_events.pbzero.cc",
     "external/perfetto/protos/perfetto/common/sys_stats_counters.pbzero.cc",
     "external/perfetto/protos/perfetto/common/trace_stats.pbzero.cc",
   ],
@@ -803,6 +813,7 @@
   srcs: [
     "protos/perfetto/common/android_log_constants.proto",
     "protos/perfetto/common/commit_data_request.proto",
+    "protos/perfetto/common/observable_events.proto",
     "protos/perfetto/common/sys_stats_counters.proto",
     "protos/perfetto/common/trace_stats.proto",
   ],
@@ -814,6 +825,7 @@
   out: [
     "external/perfetto/protos/perfetto/common/android_log_constants.pbzero.h",
     "external/perfetto/protos/perfetto/common/commit_data_request.pbzero.h",
+    "external/perfetto/protos/perfetto/common/observable_events.pbzero.h",
     "external/perfetto/protos/perfetto/common/sys_stats_counters.pbzero.h",
     "external/perfetto/protos/perfetto/common/trace_stats.pbzero.h",
   ],
@@ -2615,6 +2627,7 @@
     "src/tracing/core/id_allocator.cc",
     "src/tracing/core/inode_file_config.cc",
     "src/tracing/core/null_trace_writer.cc",
+    "src/tracing/core/observable_events.cc",
     "src/tracing/core/packet_stream_validator.cc",
     "src/tracing/core/process_stats_config.cc",
     "src/tracing/core/shared_memory_abi.cc",
@@ -2957,6 +2970,7 @@
     "src/tracing/core/inode_file_config.cc",
     "src/tracing/core/null_trace_writer.cc",
     "src/tracing/core/null_trace_writer_unittest.cc",
+    "src/tracing/core/observable_events.cc",
     "src/tracing/core/packet_stream_validator.cc",
     "src/tracing/core/packet_stream_validator_unittest.cc",
     "src/tracing/core/patch_list_unittest.cc",