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

Side by Side Diff: chrome/browser/printing/cloud_print/cloud_print_printer_list.cc

Issue 2742763002: Clean up Cloud Print API flow code. (Closed)
Patch Set: Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/printing/cloud_print/cloud_print_printer_list.h" 5 #include "chrome/browser/printing/cloud_print/cloud_print_printer_list.h"
6 6
7 #include <utility>
8
9 #include "chrome/common/cloud_print/cloud_print_constants.h" 7 #include "chrome/common/cloud_print/cloud_print_constants.h"
10 #include "components/cloud_devices/common/cloud_devices_urls.h" 8 #include "components/cloud_devices/common/cloud_devices_urls.h"
11 9
12 namespace cloud_print { 10 namespace cloud_print {
13 11
14 CloudPrintPrinterList::Device::Device() {}
15
16 CloudPrintPrinterList::Device::~Device() {}
17
18 CloudPrintPrinterList::Delegate::Delegate() {} 12 CloudPrintPrinterList::Delegate::Delegate() {}
19 13
20 CloudPrintPrinterList::Delegate::~Delegate() {} 14 CloudPrintPrinterList::Delegate::~Delegate() {}
21 15
22 CloudPrintPrinterList::CloudPrintPrinterList(Delegate* delegate) 16 CloudPrintPrinterList::CloudPrintPrinterList(Delegate* delegate)
23 : delegate_(delegate) {} 17 : delegate_(delegate) {}
24 18
25 CloudPrintPrinterList::~CloudPrintPrinterList() { 19 CloudPrintPrinterList::~CloudPrintPrinterList() {
26 } 20 }
27 21
28 void CloudPrintPrinterList::OnGCDApiFlowError(GCDApiFlow::Status status) { 22 void CloudPrintPrinterList::OnGCDApiFlowError(GCDApiFlow::Status status) {
29 delegate_->OnDeviceListUnavailable(); 23 delegate_->OnDeviceListUnavailable();
30 } 24 }
31 25
32 void CloudPrintPrinterList::OnGCDApiFlowComplete( 26 void CloudPrintPrinterList::OnGCDApiFlowComplete(
33 const base::DictionaryValue& value) { 27 const base::DictionaryValue& value) {
34 const base::ListValue* printers; 28 const base::ListValue* printers;
35
36 if (!value.GetList(cloud_print::kPrinterListValue, &printers)) { 29 if (!value.GetList(cloud_print::kPrinterListValue, &printers)) {
37 delegate_->OnDeviceListUnavailable(); 30 delegate_->OnDeviceListUnavailable();
38 return; 31 return;
39 } 32 }
40 33
41 DeviceList devices; 34 DeviceList devices;
42 for (base::ListValue::const_iterator i = printers->begin(); 35 for (const auto& printer : *printers) {
43 i != printers->end(); 36 base::DictionaryValue* printer_dict;
44 i++) { 37 if (!printer->GetAsDictionary(&printer_dict))
45 base::DictionaryValue* printer;
46 Device printer_details;
47
48 if (!(*i)->GetAsDictionary(&printer))
49 continue; 38 continue;
50 39
51 if (!FillPrinterDetails(*printer, &printer_details)) 40 Device printer_details;
41 if (!FillPrinterDetails(*printer_dict, &printer_details))
52 continue; 42 continue;
53 43
54 devices.push_back(printer_details); 44 devices.push_back(printer_details);
55 } 45 }
56 46
57 delegate_->OnDeviceListReady(devices); 47 delegate_->OnDeviceListReady(devices);
58 } 48 }
59 49
60 GURL CloudPrintPrinterList::GetURL() { 50 GURL CloudPrintPrinterList::GetURL() {
61 return cloud_devices::GetCloudPrintRelativeURL("search"); 51 return cloud_devices::GetCloudPrintRelativeURL("search");
(...skipping 11 matching lines...) Expand all
73 } 63 }
74 64
75 // Non-essential. 65 // Non-essential.
76 printer_value.GetString(cloud_print::kPrinterDescValue, 66 printer_value.GetString(cloud_print::kPrinterDescValue,
77 &printer_details->description); 67 &printer_details->description);
78 68
79 return true; 69 return true;
80 } 70 }
81 71
82 } // namespace cloud_print 72 } // namespace cloud_print
OLDNEW
« no previous file with comments | « chrome/browser/printing/cloud_print/cloud_print_printer_list.h ('k') | chrome/browser/printing/cloud_print/gcd_api_flow.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698