| OLD | NEW |
| 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 Loading... |
| 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 |
| OLD | NEW |