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

Side by Side Diff: chromeos/printing/fake_printer_discoverer.cc

Issue 2380753004: [CUPS] Implement the Webui handler for the printers auto discovery. (Closed)
Patch Set: Rebase Created 4 years, 2 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "chromeos/printing/fake_printer_discoverer.h" 5 #include "chromeos/printing/fake_printer_discoverer.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <iterator> 8 #include <iterator>
9 #include <memory> 9 #include <memory>
10 10
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 printers_[i].set_manufacturer("Chromium"); 67 printers_[i].set_manufacturer("Chromium");
68 printers_[i].set_model(i % 3 == 0 ? "Inkjet" : "Laser Maker"); 68 printers_[i].set_model(i % 3 == 0 ? "Inkjet" : "Laser Maker");
69 printers_[i].set_uri( 69 printers_[i].set_uri(
70 base::StringPrintf("lpr://192.168.1.%d:9100/bldg/printer", i)); 70 base::StringPrintf("lpr://192.168.1.%d:9100/bldg/printer", i));
71 printers_[i].set_uuid( 71 printers_[i].set_uuid(
72 base::StringPrintf("UUID-%4d-%4d-%4d-UUID", i * 3, i * 2, i)); 72 base::StringPrintf("UUID-%4d-%4d-%4d-UUID", i * 3, i * 2, i));
73 } 73 }
74 } 74 }
75 75
76 void FakePrinterDiscoverer::EmitPrinters(size_t start, size_t end) { 76 void FakePrinterDiscoverer::EmitPrinters(size_t start, size_t end) {
77 if (!discovery_running_ || start >= printers_.size() || end > start) 77 if (!discovery_running_ || start >= printers_.size() || end < start)
78 return; 78 return;
79 79
80 size_t clipped_start = std::max(static_cast<size_t>(0), start); 80 size_t clipped_start = std::max(static_cast<size_t>(0), start);
81 size_t clipped_end = std::min(printers_.size(), end); 81 size_t clipped_end = std::min(printers_.size(), end);
82 if (!observers_.empty()) { 82 if (!observers_.empty()) {
83 std::vector<Printer> subset(printers_.cbegin() + clipped_start, 83 std::vector<Printer> subset(printers_.cbegin() + clipped_start,
84 printers_.cbegin() + clipped_end); 84 printers_.cbegin() + clipped_end);
85 85
86 for (auto observer : observers_) 86 for (auto observer : observers_)
87 observer->OnPrintersFound(subset); 87 observer->OnPrintersFound(subset);
88 } 88 }
89 89
90 // schedule another emit if elements remain. 90 // schedule another emit if elements remain.
91 if (end < printers_.size()) { 91 if (end < printers_.size()) {
92 base::SequencedTaskRunnerHandle::Get()->PostNonNestableDelayedTask( 92 base::SequencedTaskRunnerHandle::Get()->PostNonNestableDelayedTask(
93 FROM_HERE, 93 FROM_HERE,
94 base::Bind(&FakePrinterDiscoverer::EmitPrinters, 94 base::Bind(&FakePrinterDiscoverer::EmitPrinters,
95 weak_ptr_factory_.GetWeakPtr(), clipped_end, end + end), 95 weak_ptr_factory_.GetWeakPtr(), clipped_end, end + end),
96 base::TimeDelta::FromMilliseconds(2000)); 96 base::TimeDelta::FromMilliseconds(2000));
97 } else { 97 } else {
98 // We're done. Notify observers. 98 // We're done. Notify observers.
99 discovery_running_ = false; 99 discovery_running_ = false;
100 for (auto observer : observers_) 100 for (auto observer : observers_)
101 observer->OnDiscoveryDone(); 101 observer->OnDiscoveryDone();
102 } 102 }
103 } 103 }
104 104
105 } // namespace chromeos 105 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698