blob: 4eac7e86a1fa800446099945b2135ad53a195d99 [file] [log] [blame]
// Copyright 2022 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/reporting/health/health_module_delegate.h"
#include <memory>
#include <utility>
#include "base/functional/bind.h"
#include "base/logging.h"
namespace reporting {
HealthModuleDelegate::HealthModuleDelegate() {
DETACH_FROM_SEQUENCE(sequence_checker_);
}
HealthModuleDelegate::~HealthModuleDelegate() {
// Because of weak ptr factory, must be on the same sequence.
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
}
void HealthModuleDelegate::Init() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
const Status init_result = DoInit();
if (!init_result.ok()) {
LOG(ERROR) << "Health module failed to initialize, status=" << init_result;
return;
}
initialized_ = true;
}
bool HealthModuleDelegate::IsInitialized() const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return initialized_;
}
void HealthModuleDelegate::GetERPHealthData(HealthCallback cb) const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DoGetERPHealthData(std::move(cb));
}
void HealthModuleDelegate::PostHealthRecord(HealthDataHistory record) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DoPostHealthRecord(std::move(record));
}
base::WeakPtr<HealthModuleDelegate> HealthModuleDelegate::GetWeakPtr() {
return weak_ptr_factory_.GetWeakPtr();
}
} // namespace reporting