[email protected] | e231975 | 2011-09-23 23:19:09 | [diff] [blame] | 1 | // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
license.bot | bf09a50 | 2008-08-24 00:55:55 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
initial.commit | 09911bf | 2008-07-26 23:55:29 | [diff] [blame] | 4 | |
[email protected] | 8ff1d42 | 2009-07-07 21:31:39 | [diff] [blame] | 5 | #include "printing/page_range.h" |
initial.commit | 09911bf | 2008-07-26 23:55:29 | [diff] [blame] | 6 | |
avi | 126e93c | 2015-12-21 21:48:16 | [diff] [blame] | 7 | #include <stddef.h> |
8 | |||||
[email protected] | 7286e3fc | 2011-07-19 22:13:24 | [diff] [blame] | 9 | #include <set> |
[email protected] | f911434 | 2013-10-02 20:11:50 | [diff] [blame] | 10 | |
11 | namespace { | ||||
12 | const std::size_t kMaxNumberOfPages = 100000; | ||||
13 | } | ||||
initial.commit | 09911bf | 2008-07-26 23:55:29 | [diff] [blame] | 14 | |
15 | namespace printing { | ||||
16 | |||||
[email protected] | 8227045 | 2009-06-19 15:58:01 | [diff] [blame] | 17 | /* static */ |
initial.commit | 09911bf | 2008-07-26 23:55:29 | [diff] [blame] | 18 | std::vector<int> PageRange::GetPages(const PageRanges& ranges) { |
[email protected] | f911434 | 2013-10-02 20:11:50 | [diff] [blame] | 19 | // TODO(vitalybuka): crbug.com/95548 Remove this method as part fix. |
initial.commit | 09911bf | 2008-07-26 23:55:29 | [diff] [blame] | 20 | std::set<int> pages; |
21 | for (unsigned i = 0; i < ranges.size(); ++i) { | ||||
22 | const PageRange& range = ranges[i]; | ||||
23 | // Ranges are inclusive. | ||||
24 | for (int i = range.from; i <= range.to; ++i) { | ||||
25 | pages.insert(i); | ||||
[email protected] | f911434 | 2013-10-02 20:11:50 | [diff] [blame] | 26 | if (pages.size() >= kMaxNumberOfPages) |
27 | return std::vector<int>(pages.begin(), pages.end()); | ||||
initial.commit | 09911bf | 2008-07-26 23:55:29 | [diff] [blame] | 28 | } |
29 | } | ||||
[email protected] | 7286e3fc | 2011-07-19 22:13:24 | [diff] [blame] | 30 | return std::vector<int>(pages.begin(), pages.end()); |
initial.commit | 09911bf | 2008-07-26 23:55:29 | [diff] [blame] | 31 | } |
32 | |||||
33 | } // namespace printing |