#ifndef CHROME_COMMON_PROFILER_CHROME_THREAD_GROUP_PROFILER_CLIENT_H_
#define CHROME_COMMON_PROFILER_CHROME_THREAD_GROUP_PROFILER_CLIENT_H_
#include "base/functional/callback.h"
#include "base/profiler/stack_sampling_profiler.h"
#include "base/profiler/thread_group_profiler_client.h"
#include "components/sampling_profiler/process_type.h"
namespace base {
class CommandLine;
class ProfileBuilder;
}
class ChromeThreadGroupProfilerClient : public base::ThreadGroupProfilerClient {
public:
ChromeThreadGroupProfilerClient() = default;
ChromeThreadGroupProfilerClient(const ChromeThreadGroupProfilerClient&) =
delete;
ChromeThreadGroupProfilerClient& operator=(
const ChromeThreadGroupProfilerClient&) = delete;
base::StackSamplingProfiler::SamplingParams GetSamplingParams() override;
std::unique_ptr<base::ProfileBuilder> CreateProfileBuilder(
base::OnceClosure builder_completed_callback) override;
base::StackSamplingProfiler::UnwindersFactory GetUnwindersFactory() override;
bool IsProfilerEnabledForCurrentProcess() override;
bool IsSingleProcess(const base::CommandLine& command_line) override;
sampling_profiler::ProfilerProcessType GetProcessType();
};
#endif