blob: 31dca1ea5d9dfeb70f90e3d16a5244a2ad592137 [file] [log] [blame]
/*
* Copyright (C) 2024 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "src/tracing/test/proxy_producer_endpoint.h"
#include "perfetto/ext/tracing/core/trace_writer.h"
namespace perfetto {
ProxyProducerEndpoint::~ProxyProducerEndpoint() = default;
void ProxyProducerEndpoint::Disconnect() {
if (!backend_) {
return;
}
backend_->Disconnect();
}
void ProxyProducerEndpoint::RegisterDataSource(
const DataSourceDescriptor& dsd) {
if (!backend_) {
return;
}
backend_->RegisterDataSource(dsd);
}
void ProxyProducerEndpoint::UpdateDataSource(const DataSourceDescriptor& dsd) {
if (!backend_) {
return;
}
backend_->UpdateDataSource(dsd);
}
void ProxyProducerEndpoint::UnregisterDataSource(const std::string& name) {
if (!backend_) {
return;
}
backend_->UnregisterDataSource(name);
}
void ProxyProducerEndpoint::RegisterTraceWriter(uint32_t writer_id,
uint32_t target_buffer) {
if (!backend_) {
return;
}
backend_->RegisterTraceWriter(writer_id, target_buffer);
}
void ProxyProducerEndpoint::UnregisterTraceWriter(uint32_t writer_id) {
if (!backend_) {
return;
}
backend_->UnregisterTraceWriter(writer_id);
}
void ProxyProducerEndpoint::CommitData(const CommitDataRequest& req,
CommitDataCallback callback) {
if (!backend_) {
return;
}
backend_->CommitData(req, callback);
}
SharedMemory* ProxyProducerEndpoint::shared_memory() const {
if (!backend_) {
return nullptr;
}
return backend_->shared_memory();
}
size_t ProxyProducerEndpoint::shared_buffer_page_size_kb() const {
if (!backend_) {
return 0;
}
return backend_->shared_buffer_page_size_kb();
}
std::unique_ptr<TraceWriter> ProxyProducerEndpoint::CreateTraceWriter(
BufferID target_buffer,
BufferExhaustedPolicy buffer_exhausted_policy) {
if (!backend_) {
return nullptr;
}
return backend_->CreateTraceWriter(target_buffer, buffer_exhausted_policy);
}
SharedMemoryArbiter* ProxyProducerEndpoint::MaybeSharedMemoryArbiter() {
if (!backend_) {
return nullptr;
}
return backend_->MaybeSharedMemoryArbiter();
}
bool ProxyProducerEndpoint::IsShmemProvidedByProducer() const {
if (!backend_) {
return false;
}
return backend_->IsShmemProvidedByProducer();
}
void ProxyProducerEndpoint::NotifyFlushComplete(FlushRequestID id) {
if (!backend_) {
return;
}
backend_->NotifyFlushComplete(id);
}
void ProxyProducerEndpoint::NotifyDataSourceStarted(DataSourceInstanceID id) {
if (!backend_) {
return;
}
backend_->NotifyDataSourceStarted(id);
}
void ProxyProducerEndpoint::NotifyDataSourceStopped(DataSourceInstanceID id) {
if (!backend_) {
return;
}
backend_->NotifyDataSourceStopped(id);
}
void ProxyProducerEndpoint::ActivateTriggers(
const std::vector<std::string>& triggers) {
if (!backend_) {
return;
}
backend_->ActivateTriggers(triggers);
}
void ProxyProducerEndpoint::Sync(std::function<void()> callback) {
if (!backend_) {
return;
}
backend_->Sync(callback);
}
} // namespace perfetto