Index: chrome/browser/local_discovery/wifi/bootstrapping_device_lister.cc |
diff --git a/chrome/browser/local_discovery/wifi/bootstrapping_device_lister.cc b/chrome/browser/local_discovery/wifi/bootstrapping_device_lister.cc |
deleted file mode 100644 |
index c8396e72597a82ea78a399e3ab4e3cc9ab186a21..0000000000000000000000000000000000000000 |
--- a/chrome/browser/local_discovery/wifi/bootstrapping_device_lister.cc |
+++ /dev/null |
@@ -1,170 +0,0 @@ |
-// Copyright 2014 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 "chrome/browser/local_discovery/wifi/bootstrapping_device_lister.h" |
- |
-#include <algorithm> |
-#include <iterator> |
- |
-#include "base/bind.h" |
-#include "base/location.h" |
-#include "base/message_loop/message_loop_proxy.h" |
-#include "base/stl_util.h" |
-#include "base/strings/string_util.h" |
- |
-namespace local_discovery { |
- |
-namespace wifi { |
- |
-namespace { |
- |
-const char kPrivetSuffix[] = "prv"; |
-// 3 for prv, 3 for type, one for connection status. |
-const size_t kPrivetCharactersAfterSeparator = 7; |
- |
-const struct { |
- const char* const short_name; |
- const char* const long_name; |
-} kPrivetShortNames[] = {{"cam", "camera"}, {"pri", "printer"}}; |
- |
-const struct { |
- char signifier; |
- BootstrappingDeviceDescription::ConnectionStatus status; |
-} kPrivetConnectionStatuses[] = { |
- {'C', BootstrappingDeviceDescription::CONNECTING}, |
- {'F', BootstrappingDeviceDescription::OFFLINE}, |
- {'L', BootstrappingDeviceDescription::LOCAL_ONLY}, |
- {'N', BootstrappingDeviceDescription::NOT_CONFIGURED}, |
- {'O', BootstrappingDeviceDescription::ONLINE}, |
-}; |
- |
-const char kPrivetDeviceLongName[] = "device"; |
- |
-std::string ExpandDeviceKind(const std::string& device_kind_short) { |
- for (size_t i = 0; i < arraysize(kPrivetShortNames); i++) { |
- if (device_kind_short == kPrivetShortNames[i].short_name) { |
- return kPrivetShortNames[i].long_name; |
- } |
- } |
- return kPrivetDeviceLongName; |
-} |
- |
-BootstrappingDeviceDescription::ConnectionStatus GetConnectionStatus( |
- char signifier) { |
- for (size_t i = 0; i < arraysize(kPrivetConnectionStatuses); i++) { |
- if (signifier == kPrivetConnectionStatuses[i].signifier) { |
- return kPrivetConnectionStatuses[i].status; |
- } |
- } |
- |
- LOG(WARNING) << "Unknown WiFi connection state signifier " << signifier; |
- return BootstrappingDeviceDescription::NOT_CONFIGURED; |
-} |
- |
-// Return true if the SSID is a privet ssid and fills |description| with its |
-// attributes. |
-bool ParsePrivetSSID(const std::string& internal_id, |
- const std::string& ssid, |
- BootstrappingDeviceDescription* description) { |
- if (!EndsWith(ssid, kPrivetSuffix, true)) |
- return false; |
- |
- size_t at_pos = ssid.length() - kPrivetCharactersAfterSeparator - 1; |
- |
- if (ssid[at_pos] != '@' || ssid.find('@', at_pos + 1) != std::string::npos) |
- return false; |
- |
- description->device_network_id = internal_id; |
- description->device_ssid = ssid; |
- |
- description->device_name = ssid.substr(0, at_pos); |
- description->device_kind = ExpandDeviceKind(ssid.substr(at_pos + 1, 3)); |
- description->connection_status = GetConnectionStatus(ssid.at(at_pos + 4)); |
- |
- return true; |
-} |
- |
-} // namespace |
- |
-BootstrappingDeviceDescription::BootstrappingDeviceDescription() |
- : connection_status(NOT_CONFIGURED) { |
-} |
- |
-BootstrappingDeviceDescription::~BootstrappingDeviceDescription() { |
-} |
- |
-BootstrappingDeviceLister::BootstrappingDeviceLister( |
- WifiManager* wifi_manager, |
- const UpdateCallback& update_callback) |
- : wifi_manager_(wifi_manager), |
- update_callback_(update_callback), |
- started_(false), |
- weak_factory_(this) { |
-} |
- |
-BootstrappingDeviceLister::~BootstrappingDeviceLister() { |
- if (started_) |
- wifi_manager_->RemoveNetworkListObserver(this); |
-} |
- |
-void BootstrappingDeviceLister::Start() { |
- DCHECK(!started_); |
- |
- started_ = true; |
- |
- wifi_manager_->AddNetworkListObserver(this); |
- |
- wifi_manager_->GetSSIDList( |
- base::Bind(&BootstrappingDeviceLister::OnNetworkListChanged, |
- weak_factory_.GetWeakPtr())); |
-} |
- |
-void BootstrappingDeviceLister::OnNetworkListChanged( |
- const std::vector<NetworkProperties>& ssids) { |
- ActiveDeviceList new_devices; |
- |
- for (size_t i = 0; i < ssids.size(); i++) { |
- new_devices.push_back(make_pair(ssids[i].ssid, ssids[i].guid)); |
- } |
- |
- std::sort(new_devices.begin(), new_devices.end()); |
- |
- base::WeakPtr<BootstrappingDeviceLister> weak_this = |
- weak_factory_.GetWeakPtr(); |
- // Find new or changed SSIDs |
- UpdateChangedSSIDs(true, new_devices, active_devices_); |
- if (!weak_this) |
- return; |
- |
- // Find removed SSIDs |
- UpdateChangedSSIDs(false, active_devices_, new_devices); |
- if (!weak_this) |
- return; |
- |
- active_devices_.swap(new_devices); |
-} |
- |
-void BootstrappingDeviceLister::UpdateChangedSSIDs( |
- bool available, |
- const ActiveDeviceList& changed, |
- const ActiveDeviceList& original) { |
- base::WeakPtr<BootstrappingDeviceLister> weak_this = |
- weak_factory_.GetWeakPtr(); |
- |
- ActiveDeviceList changed_devices = |
- base::STLSetDifference<ActiveDeviceList>(changed, original); |
- |
- for (ActiveDeviceList::reverse_iterator i = changed_devices.rbegin(); |
- weak_this && i != changed_devices.rend(); |
- i++) { |
- BootstrappingDeviceDescription description; |
- if (ParsePrivetSSID(i->second, i->first, &description)) { |
- update_callback_.Run(available, description); |
- } |
- } |
-} |
- |
-} // namespace wifi |
- |
-} // namespace local_discovery |