blob: 35e3e266959c3551ce906cce191fc517b545208c [file] [log] [blame]
// Copyright 2025 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/feature_engagement/internal/single_event_model_provider.h"
#include "base/functional/bind.h"
#include "components/feature_engagement/internal/event_model.h"
namespace feature_engagement {
SingleEventModelProvider::SingleEventModelProvider(
std::unique_ptr<EventModel> event_model)
: event_model_(std::move(event_model)) {
DCHECK(event_model_);
}
SingleEventModelProvider::~SingleEventModelProvider() = default;
void SingleEventModelProvider::Initialize(
OnModelInitializationFinished callback,
uint32_t current_day) {
event_model_->Initialize(
base::BindOnce(&SingleEventModelProvider::OnInitializeComplete,
weak_ptr_factory_.GetWeakPtr(), std::move(callback)),
current_day);
}
bool SingleEventModelProvider::IsReady() const {
return event_model_->IsReady();
}
const EventModelReader* SingleEventModelProvider::GetEventModelReaderForFeature(
const FeatureConfig& feature_config) const {
return event_model_.get();
}
EventModelWriter* SingleEventModelProvider::GetEventModelWriter() {
return event_model_.get();
}
void SingleEventModelProvider::OnInitializeComplete(
OnModelInitializationFinished callback,
bool success) {
std::move(callback).Run(success);
}
} // namespace feature_engagement