| // 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_adapter.h" |
| |
| #include "base/stl_util.h" |
| #include "device/nfc/nfc_peer.h" |
| #include "device/nfc/nfc_tag.h" |
| |
| namespace device { |
| |
| NfcAdapter::NfcAdapter() { |
| } |
| |
| NfcAdapter::~NfcAdapter() { |
| STLDeleteValues(&peers_); |
| STLDeleteValues(&tags_); |
| } |
| |
| void NfcAdapter::GetPeers(PeerList* peer_list) const { |
| peer_list->clear(); |
| for (PeersMap::const_iterator iter = peers_.begin(); |
| iter != peers_.end(); ++iter) { |
| peer_list->push_back(iter->second); |
| } |
| } |
| |
| void NfcAdapter::GetTags(TagList* tag_list) const { |
| tag_list->clear(); |
| for (TagsMap::const_iterator iter = tags_.begin(); |
| iter != tags_.end(); ++iter) { |
| tag_list->push_back(iter->second); |
| } |
| } |
| |
| NfcPeer* NfcAdapter::GetPeer(const std::string& identifier) const { |
| PeersMap::const_iterator iter = peers_.find(identifier); |
| if (iter != peers_.end()) |
| return iter->second; |
| return NULL; |
| } |
| |
| NfcTag* NfcAdapter::GetTag(const std::string& identifier) const { |
| TagsMap::const_iterator iter = tags_.find(identifier); |
| if (iter != tags_.end()) |
| return iter->second; |
| return NULL; |
| } |
| |
| void NfcAdapter::SetTag(const std::string& identifier, NfcTag* tag) { |
| if (GetTag(identifier)) { |
| VLOG(1) << "Tag object for tag \"" << identifier << "\" already exists."; |
| return; |
| } |
| tags_[identifier] = tag; |
| } |
| |
| void NfcAdapter::SetPeer(const std::string& identifier, NfcPeer* peer) { |
| if (GetPeer(identifier)) { |
| VLOG(1) << "Peer object for peer \"" << identifier << "\" already exists."; |
| return; |
| } |
| peers_[identifier] = peer; |
| } |
| |
| NfcTag* NfcAdapter::RemoveTag(const std::string& identifier) { |
| TagsMap::iterator iter = tags_.find(identifier); |
| if (iter == tags_.end()) { |
| VLOG(1) << "Tag with identifier \"" << identifier << "\" not found."; |
| return NULL; |
| } |
| NfcTag* tag = iter->second; |
| tags_.erase(iter); |
| return tag; |
| } |
| |
| NfcPeer* NfcAdapter::RemovePeer(const std::string& identifier) { |
| PeersMap::iterator iter = peers_.find(identifier); |
| if (iter == peers_.end()) { |
| VLOG(1) << "Peer object for peer \"" << identifier << "\" not found."; |
| return NULL; |
| } |
| NfcPeer* peer = iter->second; |
| peers_.erase(iter); |
| return peer; |
| } |
| |
| void NfcAdapter::ClearTags() { |
| tags_.clear(); |
| } |
| |
| void NfcAdapter::ClearPeers() { |
| peers_.clear(); |
| } |
| |
| } // namespace device |