Home | History | Annotate | Download | only in nfc
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "device/nfc/nfc_adapter.h"
      6 
      7 #include "base/stl_util.h"
      8 #include "device/nfc/nfc_peer.h"
      9 #include "device/nfc/nfc_tag.h"
     10 
     11 namespace device {
     12 
     13 NfcAdapter::NfcAdapter() {
     14 }
     15 
     16 NfcAdapter::~NfcAdapter() {
     17   STLDeleteValues(&peers_);
     18   STLDeleteValues(&tags_);
     19 }
     20 
     21 void NfcAdapter::GetPeers(PeerList* peer_list) const {
     22   peer_list->clear();
     23   for (PeersMap::const_iterator iter = peers_.begin();
     24        iter != peers_.end(); ++iter) {
     25     peer_list->push_back(iter->second);
     26   }
     27 }
     28 
     29 void NfcAdapter::GetTags(TagList* tag_list) const {
     30   tag_list->clear();
     31   for (TagsMap::const_iterator iter = tags_.begin();
     32        iter != tags_.end(); ++iter) {
     33     tag_list->push_back(iter->second);
     34   }
     35 }
     36 
     37 NfcPeer* NfcAdapter::GetPeer(const std::string& identifier) const {
     38   PeersMap::const_iterator iter = peers_.find(identifier);
     39   if (iter != peers_.end())
     40     return iter->second;
     41   return NULL;
     42 }
     43 
     44 NfcTag* NfcAdapter::GetTag(const std::string& identifier) const {
     45   TagsMap::const_iterator iter = tags_.find(identifier);
     46   if (iter != tags_.end())
     47     return iter->second;
     48   return NULL;
     49 }
     50 
     51 void NfcAdapter::SetTag(const std::string& identifier, NfcTag* tag) {
     52   if (GetTag(identifier)) {
     53     VLOG(1) << "Tag object for tag \"" << identifier << "\" already exists.";
     54     return;
     55   }
     56   tags_[identifier] = tag;
     57 }
     58 
     59 void NfcAdapter::SetPeer(const std::string& identifier, NfcPeer* peer) {
     60   if (GetPeer(identifier)) {
     61     VLOG(1) << "Peer object for peer \"" << identifier << "\" already exists.";
     62     return;
     63   }
     64   peers_[identifier] = peer;
     65 }
     66 
     67 NfcTag* NfcAdapter::RemoveTag(const std::string& identifier) {
     68   TagsMap::iterator iter = tags_.find(identifier);
     69   if (iter == tags_.end()) {
     70     VLOG(1) << "Tag with identifier \"" << identifier << "\" not found.";
     71     return NULL;
     72   }
     73   NfcTag* tag = iter->second;
     74   tags_.erase(iter);
     75   return tag;
     76 }
     77 
     78 NfcPeer* NfcAdapter::RemovePeer(const std::string& identifier) {
     79   PeersMap::iterator iter = peers_.find(identifier);
     80   if (iter == peers_.end()) {
     81     VLOG(1) << "Peer object for peer \"" << identifier << "\" not found.";
     82     return NULL;
     83   }
     84   NfcPeer* peer = iter->second;
     85   peers_.erase(iter);
     86   return peer;
     87 }
     88 
     89 void NfcAdapter::ClearTags() {
     90   tags_.clear();
     91 }
     92 
     93 void NfcAdapter::ClearPeers() {
     94   peers_.clear();
     95 }
     96 
     97 }  // namespace device
     98