TrackEvent: Add support for overriding interned data storage
This patch makes it possible to override the underlying storage for
interned data in perfetto::EventContext. This makes it possible to use
interned data in Chrome's typed trace points.
Bug: 156727531
Change-Id: I2225dbab05fe113291779ff9b83b2ff8c8e23782
diff --git a/include/perfetto/tracing/event_context.h b/include/perfetto/tracing/event_context.h
index fe9c4bb..4ae7f1e 100644
--- a/include/perfetto/tracing/event_context.h
+++ b/include/perfetto/tracing/event_context.h
@@ -41,8 +41,10 @@
// For Chromium during the transition phase to the client library.
// TODO(eseckler): Remove once Chromium has switched to client lib entirely.
- explicit EventContext(protos::pbzero::TrackEvent* event)
- : event_(event), incremental_state_(nullptr) {}
+ explicit EventContext(
+ protos::pbzero::TrackEvent* event,
+ internal::TrackEventIncrementalState* incremental_state = nullptr)
+ : event_(event), incremental_state_(incremental_state) {}
~EventContext();
diff --git a/include/perfetto/tracing/internal/track_event_internal.h b/include/perfetto/tracing/internal/track_event_internal.h
index 8796b3a..454dd7a 100644
--- a/include/perfetto/tracing/internal/track_event_internal.h
+++ b/include/perfetto/tracing/internal/track_event_internal.h
@@ -44,7 +44,7 @@
namespace internal {
class TrackEventCategoryRegistry;
-class BaseTrackEventInternedDataIndex {
+class PERFETTO_EXPORT BaseTrackEventInternedDataIndex {
public:
virtual ~BaseTrackEventInternedDataIndex();