Index: chromeos/dbus/fake_nfc_adapter_client.cc |
diff --git a/chromeos/dbus/fake_nfc_adapter_client.cc b/chromeos/dbus/fake_nfc_adapter_client.cc |
deleted file mode 100644 |
index f0ef75d852bed638da1ac5a1fb8a62c5e77930b5..0000000000000000000000000000000000000000 |
--- a/chromeos/dbus/fake_nfc_adapter_client.cc |
+++ /dev/null |
@@ -1,327 +0,0 @@ |
-// Copyright 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 "chromeos/dbus/fake_nfc_adapter_client.h" |
- |
-#include "base/logging.h" |
-#include "chromeos/dbus/dbus_thread_manager.h" |
-#include "chromeos/dbus/fake_nfc_device_client.h" |
-#include "chromeos/dbus/fake_nfc_tag_client.h" |
-#include "dbus/message.h" |
-#include "dbus/object_path.h" |
-#include "third_party/cros_system_api/dbus/service_constants.h" |
- |
-namespace chromeos { |
- |
-using nfc_client_helpers::ObjectPathVector; |
- |
-const char FakeNfcAdapterClient::kAdapterPath0[] = "/fake/nfc0"; |
-const char FakeNfcAdapterClient::kAdapterPath1[] = "/fake/nfc1"; |
- |
-FakeNfcAdapterClient::Properties::Properties( |
- const PropertyChangedCallback& callback) |
- : NfcAdapterClient::Properties(NULL, callback) { |
-} |
- |
-FakeNfcAdapterClient::Properties::~Properties() { |
-} |
- |
-void FakeNfcAdapterClient::Properties::Get( |
- dbus::PropertyBase* property, |
- dbus::PropertySet::GetCallback callback) { |
- VLOG(1) << "Get " << property->name(); |
- callback.Run(false); |
-} |
- |
-void FakeNfcAdapterClient::Properties::GetAll() { |
- VLOG(1) << "GetAll"; |
-} |
- |
-void FakeNfcAdapterClient::Properties::Set( |
- dbus::PropertyBase* property, |
- dbus::PropertySet::SetCallback callback) { |
- VLOG(1) << "Set " << property->name(); |
- if (property->name() != powered.name()) { |
- callback.Run(false); |
- return; |
- } |
- |
- // Cannot set the power if currently polling. |
- if (polling.value()) { |
- LOG(ERROR) << "Cannot set power while polling."; |
- callback.Run(false); |
- return; |
- } |
- |
- // Cannot set power if there is a device or a tag that is currently |
- // "paired". |
- if (!devices.value().empty() || !tags.value().empty()) { |
- LOG(ERROR) << "Cannot set power while the device is paired."; |
- callback.Run(false); |
- return; |
- } |
- |
- // Obtain the cached "set value" and send a property changed signal only if |
- // its value is different from the current value of the property. |
- std::unique_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); |
- dbus::MessageWriter writer(response.get()); |
- property->AppendSetValueToWriter(&writer); |
- dbus::MessageReader reader(response.get()); |
- bool set_value = false; |
- if (!reader.PopVariantOfBool(&set_value) || set_value == powered.value()) { |
- LOG(WARNING) << "Property has not changed."; |
- callback.Run(false); |
- return; |
- } |
- property->ReplaceValueWithSetValue(); |
- callback.Run(true); |
-} |
- |
-FakeNfcAdapterClient::FakeNfcAdapterClient() |
- : present_(true), |
- second_present_(false), |
- start_pairing_on_poll_(true), |
- device_pairing_(false) { |
- VLOG(1) << "Creating FakeNfcAdapterClient"; |
- |
- std::vector<std::string> protocols; |
- protocols.push_back(nfc_common::kProtocolFelica); |
- protocols.push_back(nfc_common::kProtocolMifare); |
- protocols.push_back(nfc_common::kProtocolJewel); |
- protocols.push_back(nfc_common::kProtocolIsoDep); |
- protocols.push_back(nfc_common::kProtocolNfcDep); |
- |
- properties_.reset(new Properties(base::Bind( |
- &FakeNfcAdapterClient::OnPropertyChanged, |
- base::Unretained(this), |
- dbus::ObjectPath(kAdapterPath0)))); |
- properties_->protocols.ReplaceValue(protocols); |
- |
- second_properties_.reset(new Properties(base::Bind( |
- &FakeNfcAdapterClient::OnPropertyChanged, |
- base::Unretained(this), |
- dbus::ObjectPath(kAdapterPath1)))); |
- second_properties_->protocols.ReplaceValue(protocols); |
-} |
- |
-FakeNfcAdapterClient::~FakeNfcAdapterClient() { |
-} |
- |
-void FakeNfcAdapterClient::Init(dbus::Bus* bus) { |
-} |
- |
-void FakeNfcAdapterClient::AddObserver(Observer* observer) { |
- observers_.AddObserver(observer); |
-} |
- |
-void FakeNfcAdapterClient::RemoveObserver(Observer* observer) { |
- observers_.RemoveObserver(observer); |
-} |
- |
-std::vector<dbus::ObjectPath> FakeNfcAdapterClient::GetAdapters() { |
- std::vector<dbus::ObjectPath> object_paths; |
- if (present_) |
- object_paths.push_back(dbus::ObjectPath(kAdapterPath0)); |
- if (second_present_) |
- object_paths.push_back(dbus::ObjectPath(kAdapterPath1)); |
- return object_paths; |
-} |
- |
-FakeNfcAdapterClient::Properties* |
-FakeNfcAdapterClient::GetProperties(const dbus::ObjectPath& object_path) { |
- if (object_path == dbus::ObjectPath(kAdapterPath0)) |
- return properties_.get(); |
- if (object_path == dbus::ObjectPath(kAdapterPath1)) |
- return second_properties_.get(); |
- return NULL; |
-} |
- |
-void FakeNfcAdapterClient::StartPollLoop( |
- const dbus::ObjectPath& object_path, |
- const std::string& mode, |
- const base::Closure& callback, |
- const nfc_client_helpers::ErrorCallback& error_callback) { |
- VLOG(1) << "FakeNfcAdapterClient::StartPollLoop"; |
- if (object_path != dbus::ObjectPath(kAdapterPath0)) { |
- error_callback.Run(nfc_client_helpers::kNoResponseError, ""); |
- return; |
- } |
- if (!properties_->powered.value()) { |
- error_callback.Run(nfc_error::kFailed, "Adapter not powered."); |
- return; |
- } |
- if (properties_->polling.value()) { |
- error_callback.Run(nfc_error::kFailed, "Already polling."); |
- return; |
- } |
- if (!properties_->devices.value().empty() || |
- !properties_->tags.value().empty()) { |
- error_callback.Run(nfc_error::kFailed, "Adapter busy."); |
- return; |
- } |
- properties_->polling.ReplaceValue(true); |
- properties_->mode.ReplaceValue(mode); |
- callback.Run(); |
- |
- if (!start_pairing_on_poll_) |
- return; |
- |
- if (device_pairing_) { |
- FakeNfcDeviceClient* device_client = |
- static_cast<FakeNfcDeviceClient*>( |
- DBusThreadManager::Get()->GetNfcDeviceClient()); |
- device_client->BeginPairingSimulation(3000, 2000); |
- } else { |
- FakeNfcTagClient* tag_client = |
- static_cast<FakeNfcTagClient*>( |
- DBusThreadManager::Get()->GetNfcTagClient()); |
- tag_client->BeginPairingSimulation(2000); |
- } |
- device_pairing_ = !device_pairing_; |
-} |
- |
-void FakeNfcAdapterClient::StopPollLoop( |
- const dbus::ObjectPath& object_path, |
- const base::Closure& callback, |
- const nfc_client_helpers::ErrorCallback& error_callback) { |
- VLOG(1) << "FakeNfcAdapterClient::StopPollLoop."; |
- if (object_path != dbus::ObjectPath(kAdapterPath0)) { |
- error_callback.Run(nfc_client_helpers::kNoResponseError, ""); |
- return; |
- } |
- if (!properties_->polling.value()) { |
- error_callback.Run("org.neard.Error.Failed", "Not polling."); |
- return; |
- } |
- FakeNfcDeviceClient* device_client = |
- static_cast<FakeNfcDeviceClient*>( |
- DBusThreadManager::Get()->GetNfcDeviceClient()); |
- device_client->EndPairingSimulation(); |
- FakeNfcTagClient* tag_client = |
- static_cast<FakeNfcTagClient*>( |
- DBusThreadManager::Get()->GetNfcTagClient()); |
- tag_client->EndPairingSimulation(); |
- properties_->polling.ReplaceValue(false); |
- callback.Run(); |
-} |
- |
-void FakeNfcAdapterClient::SetAdapterPresent(bool present) { |
- if (present == present_) |
- return; |
- present_ = present; |
- if (present_) { |
- FOR_EACH_OBSERVER(NfcAdapterClient::Observer, observers_, |
- AdapterAdded(dbus::ObjectPath(kAdapterPath0))); |
- } else { |
- FOR_EACH_OBSERVER(NfcAdapterClient::Observer, observers_, |
- AdapterRemoved(dbus::ObjectPath(kAdapterPath0))); |
- } |
-} |
- |
-void FakeNfcAdapterClient::SetSecondAdapterPresent(bool present) { |
- if (present == second_present_) |
- return; |
- second_present_ = present; |
- if (present_) { |
- FOR_EACH_OBSERVER(NfcAdapterClient::Observer, observers_, |
- AdapterAdded(dbus::ObjectPath(kAdapterPath1))); |
- } else { |
- FOR_EACH_OBSERVER(NfcAdapterClient::Observer, observers_, |
- AdapterRemoved(dbus::ObjectPath(kAdapterPath1))); |
- } |
-} |
- |
-void FakeNfcAdapterClient::SetDevice(const dbus::ObjectPath& device_path) { |
- LOG(INFO) << "Add device path to the fake adapter: " << device_path.value(); |
- if (!properties_->polling.value()) { |
- LOG(ERROR) << "Adapter not polling, cannot set device."; |
- return; |
- } |
- const ObjectPathVector& devices(properties_->devices.value()); |
- for (ObjectPathVector::const_iterator iter = devices.begin(); |
- iter != devices.end(); ++iter) { |
- if (*iter == device_path) { |
- LOG(WARNING) << "Device path already in list of devices."; |
- return; |
- } |
- } |
- // Mark as not polling. |
- properties_->polling.ReplaceValue(false); |
- |
- ObjectPathVector new_devices = devices; |
- new_devices.push_back(device_path); |
- properties_->devices.ReplaceValue(new_devices); |
-} |
- |
-void FakeNfcAdapterClient::SetTag(const dbus::ObjectPath& tag_path) { |
- LOG(INFO) << "Add tag path to the fake adapter: " << tag_path.value(); |
- if (!properties_->polling.value()) { |
- LOG(ERROR) << "Adapter not polling, cannot set tag."; |
- return; |
- } |
- const ObjectPathVector& tags(properties_->tags.value()); |
- for (ObjectPathVector::const_iterator iter = tags.begin(); |
- iter != tags.end(); ++iter) { |
- if (*iter == tag_path) { |
- LOG(WARNING) << "Tag path already in list of tags."; |
- return; |
- } |
- } |
- // Mark as not polling. |
- properties_->polling.ReplaceValue(false); |
- |
- ObjectPathVector new_tags = tags; |
- new_tags.push_back(tag_path); |
- properties_->tags.ReplaceValue(new_tags); |
-} |
- |
-void FakeNfcAdapterClient::UnsetDevice(const dbus::ObjectPath& device_path) { |
- LOG(INFO) << "Remove device path from the fake adapter: " |
- << device_path.value(); |
- ObjectPathVector new_devices = properties_->devices.value(); |
- for (ObjectPathVector::iterator iter = new_devices.begin(); |
- iter != new_devices.end(); ++iter) { |
- if (*iter == device_path) { |
- new_devices.erase(iter); |
- properties_->devices.ReplaceValue(new_devices); |
- |
- // Mark as polling. |
- DCHECK(!properties_->polling.value()); |
- properties_->polling.ReplaceValue(true); |
- return; |
- } |
- } |
- LOG(WARNING) << "Device path not in list of devices."; |
-} |
- |
-void FakeNfcAdapterClient::UnsetTag(const dbus::ObjectPath& tag_path) { |
- LOG(INFO) << "Remove tag path from the fake adapter: " << tag_path.value(); |
- ObjectPathVector new_tags = properties_->tags.value(); |
- for (ObjectPathVector::iterator iter = new_tags.begin(); |
- iter != new_tags.end(); ++iter) { |
- if (*iter == tag_path) { |
- new_tags.erase(iter); |
- properties_->tags.ReplaceValue(new_tags); |
- |
- // Mark as polling. |
- DCHECK(!properties_->polling.value()); |
- properties_->polling.ReplaceValue(true); |
- return; |
- } |
- } |
- LOG(WARNING) << "Tag path not in list of tags."; |
-} |
- |
-void FakeNfcAdapterClient::EnablePairingOnPoll(bool enabled) { |
- start_pairing_on_poll_ = enabled; |
-} |
- |
-void FakeNfcAdapterClient::OnPropertyChanged( |
- const dbus::ObjectPath& object_path, |
- const std::string& property_name) { |
- FOR_EACH_OBSERVER(NfcAdapterClient::Observer, observers_, |
- AdapterPropertyChanged(object_path, property_name)); |
-} |
- |
-} // namespace chromeos |