// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef SERVICES_TRACING_PUBLIC_CPP_PERFETTO_PERFETTO_PRODUCER_H_ #define SERVICES_TRACING_PUBLIC_CPP_PERFETTO_PERFETTO_PRODUCER_H_ #include <memory> #include "base/component_export.h" #include "base/memory/raw_ptr.h" #include "build/build_config.h" #include "services/tracing/public/cpp/perfetto/perfetto_traced_process.h" #include "third_party/perfetto/include/perfetto/ext/tracing/core/basic_types.h" #include "third_party/perfetto/include/perfetto/ext/tracing/core/tracing_service.h" namespace perfetto { class SharedMemoryArbiter; } // namespace perfetto namespace tracing { // This class represents the perfetto producer endpoint which is used for // producers to talk to the Perfetto service. It also provides methods to // interact with the shared memory buffer by binding and creating TraceWriters. // // In addition to the PerfettoProducers' pure virtual methods, subclasses must // implement the remaining methods of the ProducerEndpoint interface. class COMPONENT_EXPORT(TRACING_CPP) PerfettoProducer { … }; } // namespace tracing #endif // SERVICES_TRACING_PUBLIC_CPP_PERFETTO_PERFETTO_PRODUCER_H_