| // Copyright 2023 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "components/memory_system/initializer.h" |
| |
| #include <string_view> |
| |
| #include "components/memory_system/memory_system.h" |
| #include "components/sampling_profiler/process_type.h" |
| |
| namespace memory_system { |
| |
| Initializer::Initializer() = default; |
| Initializer::~Initializer() = default; |
| |
| Initializer& Initializer::SetGwpAsanParameters(bool boost_sampling, |
| std::string_view process_type) { |
| gwp_asan_parameters_.emplace(boost_sampling, process_type); |
| return *this; |
| } |
| |
| Initializer& Initializer::SetProfilingClientParameters( |
| version_info::Channel channel, |
| sampling_profiler::ProfilerProcessType process_type) { |
| profiling_client_parameters_.emplace(channel, process_type); |
| return *this; |
| } |
| |
| Initializer& Initializer::SetDispatcherParameters( |
| DispatcherParameters::PoissonAllocationSamplerInclusion |
| poisson_allocation_sampler_inclusion, |
| DispatcherParameters::AllocationTraceRecorderInclusion |
| allocation_trace_recorder_inclusion, |
| std::string_view process_type) { |
| dispatcher_parameters_.emplace(poisson_allocation_sampler_inclusion, |
| allocation_trace_recorder_inclusion, |
| process_type); |
| return *this; |
| } |
| |
| void Initializer::Initialize(MemorySystem& memory_system) const { |
| memory_system.Initialize(gwp_asan_parameters_, profiling_client_parameters_, |
| dispatcher_parameters_); |
| } |
| |
| } // namespace memory_system |