15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "printing/page_range.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <set> 84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)namespace { 104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)const std::size_t kMaxNumberOfPages = 100000; 114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace printing { 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* static */ 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::vector<int> PageRange::GetPages(const PageRanges& ranges) { 174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // TODO(vitalybuka): crbug.com/95548 Remove this method as part fix. 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::set<int> pages; 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (unsigned i = 0; i < ranges.size(); ++i) { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const PageRange& range = ranges[i]; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Ranges are inclusive. 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (int i = range.from; i <= range.to; ++i) { 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pages.insert(i); 244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) if (pages.size() >= kMaxNumberOfPages) 254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return std::vector<int>(pages.begin(), pages.end()); 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return std::vector<int>(pages.begin(), pages.end()); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace printing 32