Implement multiple alternative services per origin.
[chromium-blink-merge.git] / cc / tiles / eviction_tile_priority_queue.h
blobe76102605085f9d8b7682400aaba22546bd32d2a
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CC_TILES_EVICTION_TILE_PRIORITY_QUEUE_H_
6 #define CC_TILES_EVICTION_TILE_PRIORITY_QUEUE_H_
8 #include <set>
9 #include <utility>
10 #include <vector>
12 #include "cc/base/cc_export.h"
13 #include "cc/layers/picture_layer_impl.h"
14 #include "cc/tiles/tile_priority.h"
15 #include "cc/tiles/tiling_set_eviction_queue.h"
17 namespace cc {
18 class PrioritizedTile;
20 class CC_EXPORT EvictionTilePriorityQueue {
21 public:
22 EvictionTilePriorityQueue();
23 ~EvictionTilePriorityQueue();
25 void Build(const std::vector<PictureLayerImpl*>& active_layers,
26 const std::vector<PictureLayerImpl*>& pending_layers,
27 TreePriority tree_priority);
29 bool IsEmpty() const;
30 const PrioritizedTile& Top() const;
31 void Pop();
33 private:
34 ScopedPtrVector<TilingSetEvictionQueue>& GetNextQueues();
35 const ScopedPtrVector<TilingSetEvictionQueue>& GetNextQueues() const;
37 ScopedPtrVector<TilingSetEvictionQueue> active_queues_;
38 ScopedPtrVector<TilingSetEvictionQueue> pending_queues_;
39 TreePriority tree_priority_;
41 DISALLOW_COPY_AND_ASSIGN(EvictionTilePriorityQueue);
44 } // namespace cc
46 #endif // CC_TILES_EVICTION_TILE_PRIORITY_QUEUE_H_