#include "perfetto/tracing/tracing.h"
#include <atomic>
#include <condition_variable>
#include <mutex>
#include "perfetto/base/time.h"
#include "perfetto/ext/base/no_destructor.h"
#include "perfetto/ext/base/waitable_event.h"
#include "perfetto/tracing/internal/track_event_internal.h"
#include "src/tracing/internal/tracing_muxer_impl.h"
namespace perfetto {
namespace {
bool g_was_initialized = …;
std::mutex& InitializedMutex() { … }
}
void Tracing::InitializeInternal(const TracingInitArgs& args) { … }
bool Tracing::IsInitialized() { … }
void Tracing::Shutdown() { … }
void Tracing::ResetForTesting() { … }
std::unique_ptr<TracingSession> Tracing::NewTraceInternal(
BackendType backend,
TracingConsumerBackend* (*system_backend_factory)()) { … }
std::unique_ptr<StartupTracingSession> Tracing::SetupStartupTracing(
const TraceConfig& config,
Tracing::SetupStartupTracingOpts opts) { … }
std::unique_ptr<StartupTracingSession> Tracing::SetupStartupTracingBlocking(
const TraceConfig& config,
Tracing::SetupStartupTracingOpts opts) { … }
void Tracing::ActivateTriggers(const std::vector<std::string>& triggers,
uint32_t ttl_ms) { … }
TracingSession::~TracingSession() = default;
bool TracingSession::FlushBlocking(uint32_t timeout_ms) { … }
std::vector<char> TracingSession::ReadTraceBlocking() { … }
TracingSession::GetTraceStatsCallbackArgs
TracingSession::GetTraceStatsBlocking() { … }
TracingSession::QueryServiceStateCallbackArgs
TracingSession::QueryServiceStateBlocking() { … }
StartupTracingSession::~StartupTracingSession() = default;
}