diff options
Diffstat (limited to 'deps/v8/src/libplatform/tracing/perfetto-producer.cc')
-rw-r--r-- | deps/v8/src/libplatform/tracing/perfetto-producer.cc | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/deps/v8/src/libplatform/tracing/perfetto-producer.cc b/deps/v8/src/libplatform/tracing/perfetto-producer.cc new file mode 100644 index 0000000000..814dca6b59 --- /dev/null +++ b/deps/v8/src/libplatform/tracing/perfetto-producer.cc @@ -0,0 +1,45 @@ +// Copyright 2019 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "src/libplatform/tracing/perfetto-producer.h" + +#include "perfetto/tracing/core/data_source_config.h" +#include "perfetto/tracing/core/data_source_descriptor.h" +#include "perfetto/tracing/core/trace_writer.h" +#include "src/libplatform/tracing/perfetto-tasks.h" +#include "src/libplatform/tracing/perfetto-tracing-controller.h" + +namespace v8 { +namespace platform { +namespace tracing { + +void PerfettoProducer::OnConnect() { + ::perfetto::DataSourceDescriptor ds_desc; + ds_desc.set_name("v8.trace_events"); + service_endpoint_->RegisterDataSource(ds_desc); +} + +void PerfettoProducer::StartDataSource( + ::perfetto::DataSourceInstanceID, const ::perfetto::DataSourceConfig& cfg) { + target_buffer_ = cfg.target_buffer(); + tracing_controller_->OnProducerReady(); +} + +void PerfettoProducer::StopDataSource(::perfetto::DataSourceInstanceID) { + target_buffer_ = 0; +} + +std::unique_ptr<::perfetto::TraceWriter> PerfettoProducer::CreateTraceWriter() + const { + CHECK_NE(0, target_buffer_); + return service_endpoint_->CreateTraceWriter(target_buffer_); +} + +PerfettoProducer::PerfettoProducer( + PerfettoTracingController* tracing_controller) + : tracing_controller_(tracing_controller) {} + +} // namespace tracing +} // namespace platform +} // namespace v8 |