blob: 520d4f31092617d050c3932544abbf3715231023 [file] [log] [blame]
// 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