Index: device/nfc/nfc_peer_chromeos.cc |
diff --git a/device/nfc/nfc_peer_chromeos.cc b/device/nfc/nfc_peer_chromeos.cc |
deleted file mode 100644 |
index 91169cd6a35599cb92a0e95544bf518955d96c9f..0000000000000000000000000000000000000000 |
--- a/device/nfc/nfc_peer_chromeos.cc |
+++ /dev/null |
@@ -1,194 +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 "device/nfc/nfc_peer_chromeos.h" |
- |
-#include <string> |
-#include <vector> |
- |
-#include "base/logging.h" |
-#include "base/stl_util.h" |
-#include "chromeos/dbus/dbus_thread_manager.h" |
-#include "chromeos/dbus/nfc_device_client.h" |
-#include "device/nfc/nfc_ndef_record_utils_chromeos.h" |
-#include "third_party/cros_system_api/dbus/service_constants.h" |
- |
-using device::NfcNdefMessage; |
-using device::NfcNdefRecord; |
- |
-namespace chromeos { |
- |
-namespace { |
- |
-typedef std::vector<dbus::ObjectPath> ObjectPathVector; |
- |
-} // namespace |
- |
-NfcPeerChromeOS::NfcPeerChromeOS(const dbus::ObjectPath& object_path) |
- : object_path_(object_path), |
- weak_ptr_factory_(this) { |
- // Create record objects for all records that were received before. |
- const ObjectPathVector& records = |
- DBusThreadManager::Get()->GetNfcRecordClient()-> |
- GetRecordsForDevice(object_path_); |
- for (ObjectPathVector::const_iterator iter = records.begin(); |
- iter != records.end(); ++iter) { |
- AddRecord(*iter); |
- } |
- DBusThreadManager::Get()->GetNfcRecordClient()->AddObserver(this); |
-} |
- |
-NfcPeerChromeOS::~NfcPeerChromeOS() { |
- DBusThreadManager::Get()->GetNfcRecordClient()->RemoveObserver(this); |
- base::STLDeleteValues(&records_); |
-} |
- |
-void NfcPeerChromeOS::AddObserver(device::NfcPeer::Observer* observer) { |
- DCHECK(observer); |
- observers_.AddObserver(observer); |
-} |
- |
-void NfcPeerChromeOS::RemoveObserver(device::NfcPeer::Observer* observer) { |
- DCHECK(observer); |
- observers_.RemoveObserver(observer); |
-} |
- |
-std::string NfcPeerChromeOS::GetIdentifier() const { |
- return object_path_.value(); |
-} |
- |
-const NfcNdefMessage& NfcPeerChromeOS::GetNdefMessage() const { |
- return message_; |
-} |
- |
-void NfcPeerChromeOS::PushNdef(const NfcNdefMessage& message, |
- const base::Closure& callback, |
- const ErrorCallback& error_callback) { |
- if (message.records().empty()) { |
- LOG(ERROR) << "Given NDEF message is empty. Cannot push it."; |
- error_callback.Run(); |
- return; |
- } |
- // TODO(armansito): neard currently supports pushing only one NDEF record |
- // to a remote device and won't support multiple records until 0.15. Until |
- // then, report failure if |message| contains more than one record. |
- if (message.records().size() > 1) { |
- LOG(ERROR) << "Currently, pushing only 1 NDEF record is supported."; |
- error_callback.Run(); |
- return; |
- } |
- const NfcNdefRecord* record = message.records()[0]; |
- base::DictionaryValue attributes; |
- if (!nfc_ndef_record_utils::NfcNdefRecordToDBusAttributes( |
- record, &attributes)) { |
- LOG(ERROR) << "Failed to extract NDEF record fields for NDEF push."; |
- error_callback.Run(); |
- return; |
- } |
- DBusThreadManager::Get()->GetNfcDeviceClient()->Push( |
- object_path_, |
- attributes, |
- base::Bind(&NfcPeerChromeOS::OnPushNdef, |
- weak_ptr_factory_.GetWeakPtr(), |
- callback), |
- base::Bind(&NfcPeerChromeOS::OnPushNdefError, |
- weak_ptr_factory_.GetWeakPtr(), |
- error_callback)); |
-} |
- |
-void NfcPeerChromeOS::StartHandover(HandoverType handover_type, |
- const base::Closure& callback, |
- const ErrorCallback& error_callback) { |
- // TODO(armansito): Initiating handover with a peer is currently not |
- // supported. For now, return an error immediately. |
- LOG(ERROR) << "NFC Handover currently not supported."; |
- error_callback.Run(); |
-} |
- |
-void NfcPeerChromeOS::RecordAdded(const dbus::ObjectPath& object_path) { |
- // Don't create the record object yet. Instead, wait until all record |
- // properties have been received and contruct the object and notify observers |
- // then. |
- VLOG(1) << "Record added: " << object_path.value() << ". Waiting until " |
- << "all properties have been fetched to create record object."; |
-} |
- |
-void NfcPeerChromeOS::RecordRemoved(const dbus::ObjectPath& object_path) { |
- NdefRecordMap::iterator iter = records_.find(object_path); |
- if (iter == records_.end()) |
- return; |
- VLOG(1) << "Lost remote NDEF record object: " << object_path.value() |
- << ", removing record."; |
- NfcNdefRecord* record = iter->second; |
- message_.RemoveRecord(record); |
- delete record; |
- records_.erase(iter); |
-} |
- |
-void NfcPeerChromeOS::RecordPropertiesReceived( |
- const dbus::ObjectPath& object_path) { |
- VLOG(1) << "Record properties received for: " << object_path.value(); |
- |
- // Check if the found record belongs to this device. |
- bool record_found = false; |
- const ObjectPathVector& records = |
- DBusThreadManager::Get()->GetNfcRecordClient()-> |
- GetRecordsForDevice(object_path_); |
- for (ObjectPathVector::const_iterator iter = records.begin(); |
- iter != records.end(); ++iter) { |
- if (*iter == object_path) { |
- record_found = true; |
- break; |
- } |
- } |
- if (!record_found) { |
- VLOG(1) << "Record \"" << object_path.value() << "\" doesn't belong to this" |
- << " device. Ignoring."; |
- return; |
- } |
- |
- AddRecord(object_path); |
-} |
- |
-void NfcPeerChromeOS::OnPushNdef(const base::Closure& callback) { |
- callback.Run(); |
-} |
- |
-void NfcPeerChromeOS::OnPushNdefError(const ErrorCallback& error_callback, |
- const std::string& error_name, |
- const std::string& error_message) { |
- LOG(ERROR) << object_path_.value() << ": Failed to Push NDEF message: " |
- << error_name << ": " << error_message; |
- error_callback.Run(); |
-} |
- |
-void NfcPeerChromeOS::AddRecord(const dbus::ObjectPath& object_path) { |
- // Ignore this call if an entry for this record already exists. |
- if (records_.find(object_path) != records_.end()) { |
- VLOG(1) << "Record object for remote \"" << object_path.value() |
- << "\" already exists."; |
- return; |
- } |
- |
- NfcRecordClient::Properties* record_properties = |
- DBusThreadManager::Get()->GetNfcRecordClient()-> |
- GetProperties(object_path); |
- DCHECK(record_properties); |
- |
- NfcNdefRecord* record = new NfcNdefRecord(); |
- if (!nfc_ndef_record_utils::RecordPropertiesToNfcNdefRecord( |
- record_properties, record)) { |
- LOG(ERROR) << "Failed to create record object for record with object " |
- << "path \"" << object_path.value() << "\""; |
- delete record; |
- return; |
- } |
- |
- message_.AddRecord(record); |
- records_[object_path] = record; |
- FOR_EACH_OBSERVER(NfcPeer::Observer, observers_, |
- RecordReceived(this, record)); |
-} |
- |
-} // namespace chromeos |