| // Copyright 2020 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chromeos/components/sensors/fake_sensor_hal_server.h" |
| |
| namespace chromeos { |
| namespace sensors { |
| |
| FakeSensorHalServer::FakeSensorHalServer() |
| : sensor_service_(new FakeSensorService()) {} |
| FakeSensorHalServer::~FakeSensorHalServer() = default; |
| |
| void FakeSensorHalServer::CreateChannel( |
| mojo::PendingReceiver<mojom::SensorService> sensor_service_receiver) { |
| sensor_service_->AddReceiver(std::move(sensor_service_receiver)); |
| } |
| |
| mojo::PendingRemote<mojom::SensorHalServer> FakeSensorHalServer::PassRemote() { |
| DCHECK(!receiver_.is_bound()); |
| auto pending_remote = receiver_.BindNewPipeAndPassRemote(); |
| receiver_.set_disconnect_handler(base::BindOnce( |
| &FakeSensorHalServer::OnServerDisconnect, base::Unretained(this))); |
| |
| return pending_remote; |
| } |
| |
| void FakeSensorHalServer::OnServerDisconnect() { |
| receiver_.reset(); |
| } |
| |
| FakeSensorService* FakeSensorHalServer::GetSensorService() { |
| return sensor_service_.get(); |
| } |
| |
| } // namespace sensors |
| } // namespace chromeos |