| // Copyright (c) 2013 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 "device/bluetooth/dbus/fake_bluetooth_agent_manager_client.h" |
| |
| #include "base/logging.h" |
| #include "device/bluetooth/dbus/fake_bluetooth_agent_service_provider.h" |
| #include "third_party/cros_system_api/dbus/service_constants.h" |
| |
| namespace bluez { |
| |
| FakeBluetoothAgentManagerClient::FakeBluetoothAgentManagerClient() |
| : service_provider_(NULL) {} |
| |
| FakeBluetoothAgentManagerClient::~FakeBluetoothAgentManagerClient() = default; |
| |
| void FakeBluetoothAgentManagerClient::Init( |
| dbus::Bus* bus, |
| const std::string& bluetooth_service_name) {} |
| |
| void FakeBluetoothAgentManagerClient::AddObserver(Observer* observer) { |
| observers_.AddObserver(observer); |
| } |
| |
| void FakeBluetoothAgentManagerClient::RemoveObserver(Observer* observer) { |
| observers_.RemoveObserver(observer); |
| } |
| |
| void FakeBluetoothAgentManagerClient::RegisterAgent( |
| const dbus::ObjectPath& agent_path, |
| const std::string& capability, |
| const base::Closure& callback, |
| const ErrorCallback& error_callback) { |
| VLOG(1) << "RegisterAgent: " << agent_path.value(); |
| |
| if (service_provider_ == NULL) { |
| error_callback.Run(bluetooth_agent_manager::kErrorInvalidArguments, |
| "No agent created"); |
| } else if (service_provider_->object_path_ != agent_path) { |
| error_callback.Run(bluetooth_agent_manager::kErrorAlreadyExists, |
| "Agent already registered"); |
| } else { |
| callback.Run(); |
| } |
| } |
| |
| void FakeBluetoothAgentManagerClient::UnregisterAgent( |
| const dbus::ObjectPath& agent_path, |
| const base::Closure& callback, |
| const ErrorCallback& error_callback) { |
| VLOG(1) << "UnregisterAgent: " << agent_path.value(); |
| if (service_provider_ == NULL) { |
| error_callback.Run(bluetooth_agent_manager::kErrorDoesNotExist, |
| "No agent registered"); |
| } else if (service_provider_->object_path_ != agent_path) { |
| error_callback.Run(bluetooth_agent_manager::kErrorDoesNotExist, |
| "Agent still registered"); |
| } else { |
| callback.Run(); |
| } |
| } |
| |
| void FakeBluetoothAgentManagerClient::RequestDefaultAgent( |
| const dbus::ObjectPath& agent_path, |
| const base::Closure& callback, |
| const ErrorCallback& error_callback) { |
| VLOG(1) << "RequestDefaultAgent: " << agent_path.value(); |
| callback.Run(); |
| } |
| |
| void FakeBluetoothAgentManagerClient::RegisterAgentServiceProvider( |
| FakeBluetoothAgentServiceProvider* service_provider) { |
| service_provider_ = service_provider; |
| } |
| |
| void FakeBluetoothAgentManagerClient::UnregisterAgentServiceProvider( |
| FakeBluetoothAgentServiceProvider* service_provider) { |
| if (service_provider_ == service_provider) |
| service_provider_ = NULL; |
| } |
| |
| FakeBluetoothAgentServiceProvider* |
| FakeBluetoothAgentManagerClient::GetAgentServiceProvider() { |
| return service_provider_; |
| } |
| |
| } // namespace bluez |