#ifndef INCLUDE_PERFETTO_TRACING_INTERNAL_DATA_SOURCE_TYPE_H_ #define INCLUDE_PERFETTO_TRACING_INTERNAL_DATA_SOURCE_TYPE_H_ #include "perfetto/base/build_config.h" #include "perfetto/base/export.h" #include "perfetto/tracing/core/forward_decls.h" #include "perfetto/tracing/internal/data_source_internal.h" #include "perfetto/tracing/internal/tracing_muxer.h" namespace perfetto { namespace internal { // Represents a data source type (not an instance). // // All the static state of a DataSource<T> lives here (including // DataSourceStaticState). // // The C shared library API wrapper cannot use DataSource<T>, because it needs // to create new data source types at runtime, so it uses this directly. // // The main reason why this intermediate class exist is to decouple the // DataSourceStaticState from the specific DataSource<T>. The C API cannot // dynamically create template instances and it needs a way to decouple those at // runtime. class PERFETTO_EXPORT_COMPONENT DataSourceType { … }; } // namespace internal } // namespace perfetto #endif // INCLUDE_PERFETTO_TRACING_INTERNAL_DATA_SOURCE_TYPE_H_