diff options
Diffstat (limited to 'src/tracing/internal/tracing_backend_fake.cc')
-rw-r--r-- | src/tracing/internal/tracing_backend_fake.cc | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/src/tracing/internal/tracing_backend_fake.cc b/src/tracing/internal/tracing_backend_fake.cc deleted file mode 100644 index 3c64fed6a..000000000 --- a/src/tracing/internal/tracing_backend_fake.cc +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Copyright (C) 2021 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 "perfetto/tracing/internal/tracing_backend_fake.h" - -#include "perfetto/base/task_runner.h" -#include "perfetto/ext/base/weak_ptr.h" -#include "perfetto/ext/tracing/core/consumer.h" -#include "perfetto/ext/tracing/core/producer.h" -#include "perfetto/ext/tracing/core/trace_writer.h" -#include "perfetto/ext/tracing/core/tracing_service.h" - -namespace perfetto { -namespace internal { - -namespace { - -class UnsupportedProducerEndpoint : public ProducerEndpoint { - public: - UnsupportedProducerEndpoint(Producer* producer, base::TaskRunner* task_runner) - : producer_(producer), task_runner_(task_runner) { - // The SDK will attempt to reconnect the producer, so instead we allow it - // to connect successfully, but never start any sessions. - auto weak_ptr = weak_ptr_factory_.GetWeakPtr(); - task_runner_->PostTask([weak_ptr] { - if (weak_ptr) - weak_ptr->producer_->OnConnect(); - }); - } - ~UnsupportedProducerEndpoint() override { producer_->OnDisconnect(); } - - void RegisterDataSource(const DataSourceDescriptor&) override {} - void UnregisterDataSource(const std::string& /*name*/) override {} - - void RegisterTraceWriter(uint32_t /*writer_id*/, - uint32_t /*target_buffer*/) override {} - void UnregisterTraceWriter(uint32_t /*writer_id*/) override {} - - void CommitData(const CommitDataRequest&, - CommitDataCallback callback = {}) override { - callback(); - } - - SharedMemory* shared_memory() const override { return nullptr; } - size_t shared_buffer_page_size_kb() const override { return 0; } - - std::unique_ptr<TraceWriter> CreateTraceWriter( - BufferID /*target_buffer*/, - BufferExhaustedPolicy = BufferExhaustedPolicy::kDefault) override { - return nullptr; - } - - SharedMemoryArbiter* MaybeSharedMemoryArbiter() override { return nullptr; } - bool IsShmemProvidedByProducer() const override { return false; } - - void NotifyFlushComplete(FlushRequestID) override {} - void NotifyDataSourceStarted(DataSourceInstanceID) override {} - void NotifyDataSourceStopped(DataSourceInstanceID) override {} - void ActivateTriggers(const std::vector<std::string>&) override {} - - void Sync(std::function<void()> callback) override { callback(); } - - private: - Producer* const producer_; - base::TaskRunner* const task_runner_; - base::WeakPtrFactory<UnsupportedProducerEndpoint> weak_ptr_factory_{ - this}; // Keep last. -}; - -class UnsupportedConsumerEndpoint : public ConsumerEndpoint { - public: - UnsupportedConsumerEndpoint(Consumer* consumer, base::TaskRunner* task_runner) - : consumer_(consumer), task_runner_(task_runner) { - // The SDK will not to reconnect the consumer, so we just disconnect it - // immediately, which will cancel the tracing session. - auto weak_this = weak_ptr_factory_.GetWeakPtr(); - task_runner_->PostTask([weak_this] { - if (weak_this) - weak_this->consumer_->OnDisconnect(); - }); - } - ~UnsupportedConsumerEndpoint() override = default; - - void EnableTracing(const TraceConfig&, - base::ScopedFile = base::ScopedFile()) override {} - void ChangeTraceConfig(const TraceConfig&) override {} - - void StartTracing() override {} - void DisableTracing() override {} - - void Flush(uint32_t /*timeout_ms*/, FlushCallback callback) override { - callback(/*success=*/false); - } - - void ReadBuffers() override {} - void FreeBuffers() override {} - - void Detach(const std::string& /*key*/) override {} - void Attach(const std::string& /*key*/) override {} - - void GetTraceStats() override {} - void ObserveEvents(uint32_t /*events_mask*/) override {} - void QueryServiceState(QueryServiceStateCallback) override {} - void QueryCapabilities(QueryCapabilitiesCallback) override {} - - void SaveTraceForBugreport(SaveTraceForBugreportCallback) override {} - - private: - Consumer* const consumer_; - base::TaskRunner* const task_runner_; - base::WeakPtrFactory<UnsupportedConsumerEndpoint> weak_ptr_factory_{ - this}; // Keep last. -}; - -} // namespace - -// static -TracingBackend* TracingBackendFake::GetInstance() { - static auto* instance = new TracingBackendFake(); - return instance; -} - -TracingBackendFake::TracingBackendFake() = default; - -std::unique_ptr<ProducerEndpoint> TracingBackendFake::ConnectProducer( - const ConnectProducerArgs& args) { - return std::unique_ptr<ProducerEndpoint>( - new UnsupportedProducerEndpoint(args.producer, args.task_runner)); -} - -std::unique_ptr<ConsumerEndpoint> TracingBackendFake::ConnectConsumer( - const ConnectConsumerArgs& args) { - return std::unique_ptr<ConsumerEndpoint>( - new UnsupportedConsumerEndpoint(args.consumer, args.task_runner)); -} - -} // namespace internal -} // namespace perfetto |