blob: eb923757ec6308ed7492a5040b14efb2a90a592a [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/performance_manager/system_resource_coordinator.h"
namespace performance_manager {
SystemResourceCoordinator::SystemResourceCoordinator(
PerformanceManager* performance_manager)
: ResourceCoordinatorInterface() {
resource_coordinator::CoordinationUnitID new_cu_id(
resource_coordinator::CoordinationUnitType::kSystem,
resource_coordinator::CoordinationUnitID::RANDOM_ID);
ResourceCoordinatorInterface::ConnectToService(performance_manager,
new_cu_id);
}
SystemResourceCoordinator::~SystemResourceCoordinator() = default;
void SystemResourceCoordinator::DistributeMeasurementBatch(
resource_coordinator::mojom::ProcessResourceMeasurementBatchPtr batch) {
if (!service_)
return;
service_->DistributeMeasurementBatch(std::move(batch));
}
void SystemResourceCoordinator::ConnectToService(
resource_coordinator::mojom::CoordinationUnitProviderPtr& provider,
const resource_coordinator::CoordinationUnitID& cu_id) {
provider->GetSystemCoordinationUnit(mojo::MakeRequest(&service_));
}
} // namespace performance_manager