Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5475)

Unified Diff: chrome/browser/local_discovery/privet_local_printer_lister.cc

Issue 1553333002: Move cloud print specific files out of local_discovery (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@moveprn
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/local_discovery/privet_local_printer_lister.cc
diff --git a/chrome/browser/local_discovery/privet_local_printer_lister.cc b/chrome/browser/local_discovery/privet_local_printer_lister.cc
deleted file mode 100644
index 5a5cd11dd23d72a97b981be68563f1a659b3e9e6..0000000000000000000000000000000000000000
--- a/chrome/browser/local_discovery/privet_local_printer_lister.cc
+++ /dev/null
@@ -1,138 +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 "chrome/browser/local_discovery/privet_local_printer_lister.h"
-
-#include <stddef.h>
-#include <string>
-#include <utility>
-
-#include "chrome/browser/local_discovery/privet_constants.h"
-#include "chrome/browser/local_discovery/privet_device_lister_impl.h"
-#include "chrome/browser/local_discovery/privet_http_asynchronous_factory.h"
-
-namespace local_discovery {
-
-struct PrivetLocalPrinterLister::DeviceContext {
- DeviceContext() : has_local_printing(false) {
- }
-
- scoped_ptr<PrivetHTTPResolution> privet_resolution;
- scoped_ptr<PrivetHTTPClient> privet_client;
- scoped_ptr<PrivetJSONOperation> info_operation;
- DeviceDescription description;
-
- bool has_local_printing;
-};
-
-PrivetLocalPrinterLister::PrivetLocalPrinterLister(
- ServiceDiscoveryClient* service_discovery_client,
- net::URLRequestContextGetter* request_context,
- Delegate* delegate) : delegate_(delegate) {
- privet_lister_.reset(
- new PrivetDeviceListerImpl(service_discovery_client, this));
- privet_http_factory_ = PrivetHTTPAsynchronousFactory::CreateInstance(
- request_context);
-}
-
-PrivetLocalPrinterLister::~PrivetLocalPrinterLister() {
-}
-
-void PrivetLocalPrinterLister::Start() {
- privet_lister_->Start();
- privet_lister_->DiscoverNewDevices(false);
-}
-
-void PrivetLocalPrinterLister::Stop() {
- privet_lister_.reset();
-}
-
-void PrivetLocalPrinterLister::DeviceChanged(
- bool added,
- const std::string& name,
- const DeviceDescription& description) {
- if (description.type != kPrivetTypePrinter)
- return;
-
- DeviceContextMap::iterator i = device_contexts_.find(name);
-
- if (i != device_contexts_.end()) {
- i->second->description = description;
- delegate_->LocalPrinterChanged(added, name, i->second->has_local_printing,
- description);
- } else {
- linked_ptr<DeviceContext> context(new DeviceContext);
- context->has_local_printing = false;
- context->description = description;
- context->privet_resolution = privet_http_factory_->CreatePrivetHTTP(name);
- device_contexts_[name] = context;
- context->privet_resolution->Start(
- description.address,
- base::Bind(&PrivetLocalPrinterLister::OnPrivetResolved,
- base::Unretained(this), name));
- }
-}
-
-void PrivetLocalPrinterLister::DeviceCacheFlushed() {
- device_contexts_.clear();
- delegate_->LocalPrinterCacheFlushed();
-}
-
-void PrivetLocalPrinterLister::OnPrivetResolved(
- const std::string& name,
- scoped_ptr<PrivetHTTPClient> http_client) {
- if (!http_client) {
- // Remove device if we can't resolve it.
- device_contexts_.erase(name);
- return;
- }
- DeviceContextMap::iterator i = device_contexts_.find(http_client->GetName());
- DCHECK(i != device_contexts_.end());
-
- i->second->info_operation = http_client->CreateInfoOperation(
- base::Bind(&PrivetLocalPrinterLister::OnPrivetInfoDone,
- base::Unretained(this),
- i->second.get(),
- http_client->GetName()));
- i->second->privet_client = std::move(http_client);
- i->second->info_operation->Start();
-}
-
-void PrivetLocalPrinterLister::OnPrivetInfoDone(
- DeviceContext* context,
- const std::string& name,
- const base::DictionaryValue* json_value) {
- bool has_local_printing = false;
- const base::ListValue* api_list = NULL;
- if (json_value && json_value->GetList(kPrivetInfoKeyAPIList, &api_list)) {
- for (size_t i = 0; i < api_list->GetSize(); i++) {
- std::string api;
- api_list->GetString(i, &api);
- if (api == kPrivetSubmitdocPath) {
- has_local_printing = true;
- }
- }
- }
-
- context->has_local_printing = has_local_printing;
- delegate_->LocalPrinterChanged(true, name, has_local_printing,
- context->description);
-}
-
-void PrivetLocalPrinterLister::DeviceRemoved(const std::string& device_name) {
- DeviceContextMap::iterator i = device_contexts_.find(device_name);
- if (i != device_contexts_.end()) {
- device_contexts_.erase(i);
- delegate_->LocalPrinterRemoved(device_name);
- }
-}
-
-const DeviceDescription* PrivetLocalPrinterLister::GetDeviceDescription(
- const std::string& name) {
- DeviceContextMap::iterator i = device_contexts_.find(name);
- if (i == device_contexts_.end()) return NULL;
- return &i->second->description;
-}
-
-} // namespace local_discovery

Powered by Google App Engine
This is Rietveld 408576698