OLD | NEW |
---|---|
(Empty) | |
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. | |
4 | |
5 #include "components/bookmarks_enhanced/memory_image_store.h" | |
6 | |
7 #include "ui/gfx/geometry/size.h" | |
8 #include "url/gurl.h" | |
9 | |
10 MemoryImageStore::MemoryImageStore() { | |
11 } | |
12 | |
13 MemoryImageStore::~MemoryImageStore() { | |
sky
2014/05/06 16:14:20
Order should match header.
Kibeom Kim (inactive)
2014/05/07 00:09:46
Done.
| |
14 DCHECK(thread_checker_.CalledOnValidThread()); | |
15 } | |
16 | |
17 bool MemoryImageStore::HasKey(const GURL& page_url) { | |
18 DCHECK(thread_checker_.CalledOnValidThread()); | |
19 | |
20 return store_.find(page_url) != store_.end(); | |
21 } | |
22 | |
23 void MemoryImageStore::Insert(const GURL& page_url, | |
24 const GURL& image_url, | |
25 const gfx::Image& image) { | |
26 DCHECK(thread_checker_.CalledOnValidThread()); | |
27 | |
28 Erase(page_url); | |
29 store_.insert(std::make_pair( | |
30 page_url, | |
31 std::make_pair(image, | |
32 image_url))); | |
33 } | |
34 | |
35 void MemoryImageStore::Erase(const GURL& page_url) { | |
36 DCHECK(thread_checker_.CalledOnValidThread()); | |
37 | |
38 store_.erase(page_url); | |
39 } | |
40 | |
41 gfx::Image MemoryImageStore::Get(const GURL& page_url, GURL* image_url) { | |
42 DCHECK(thread_checker_.CalledOnValidThread()); | |
43 DCHECK(image_url); | |
44 | |
45 ImageMap::const_iterator pair_enumerator = store_.find(page_url); | |
46 if (pair_enumerator == store_.end()) | |
47 return gfx::Image(); | |
48 | |
49 *image_url = store_[page_url].second; | |
50 return store_[page_url].first; | |
51 } | |
52 | |
53 gfx::Size MemoryImageStore::GetSize(const GURL& page_url) { | |
54 DCHECK(thread_checker_.CalledOnValidThread()); | |
55 | |
56 ImageMap::const_iterator pair_enumerator = store_.find(page_url); | |
57 if (pair_enumerator == store_.end()) | |
58 return gfx::Size(); | |
59 | |
60 return store_[page_url].first.Size(); | |
61 } | |
62 | |
63 void MemoryImageStore::GetAllPageUrls(std::vector<GURL>* urls) { | |
64 DCHECK(thread_checker_.CalledOnValidThread()); | |
65 DCHECK(urls->empty()); | |
66 | |
67 for (ImageMap::const_iterator it = store_.begin(); it != store_.end(); ++it) { | |
sky
2014/05/06 16:14:20
nit: no {}
Kibeom Kim (inactive)
2014/05/07 00:09:46
Done.
| |
68 urls->push_back(it->first); | |
69 } | |
70 } | |
71 | |
72 void ImageStore::ChangeImageURL(const GURL& from, const GURL& to) { | |
73 DCHECK(thread_checker_.CalledOnValidThread()); | |
74 | |
75 if (!HasKey(from)) | |
76 return; | |
77 GURL image_url; | |
78 gfx::Image image(Get(from, &image_url)); | |
79 | |
80 Erase(from); | |
81 Insert(to, image_url, image); | |
82 } | |
83 | |
84 // Removes all images. | |
sky
2014/05/06 16:14:20
remove comment (already documented in header).
Kibeom Kim (inactive)
2014/05/07 00:09:46
Done.
| |
85 void ImageStore::ClearAll() { | |
86 DCHECK(thread_checker_.CalledOnValidThread()); | |
87 | |
88 std::vector<GURL> all_keys; | |
sky
2014/05/06 16:14:20
Can't all this be replaced by store_.clear()?
Kibeom Kim (inactive)
2014/05/07 00:09:46
Actually, this function and above ChangeImageURL(.
| |
89 GetAllPageUrls(&all_keys); | |
90 for (std::vector<GURL>::const_iterator it = all_keys.begin(); | |
91 it != all_keys.end(); | |
92 ++it) { | |
93 Erase(*it); | |
94 } | |
95 } | |
OLD | NEW |