| Index: ash/app_list/icon_cache.cc
|
| ===================================================================
|
| --- ash/app_list/icon_cache.cc (revision 135932)
|
| +++ ash/app_list/icon_cache.cc (working copy)
|
| @@ -1,90 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "ash/app_list/icon_cache.h"
|
| -
|
| -#include "base/logging.h"
|
| -#include "base/md5.h"
|
| -#include "ui/gfx/size.h"
|
| -
|
| -namespace {
|
| -
|
| -// Gets cache key based on |image| contents and desired |size|.
|
| -std::string GetKey(const SkBitmap& image, const gfx::Size& size) {
|
| - SkAutoLockPixels image_lock(image);
|
| - base::MD5Digest digest;
|
| - MD5Sum(image.getPixels(), image.getSize(), &digest);
|
| -
|
| - return MD5DigestToBase16(digest) + "." + size.ToString();
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -namespace ash {
|
| -
|
| -// static
|
| -IconCache* IconCache::instance_ = NULL;
|
| -
|
| -// static
|
| -void IconCache::CreateInstance() {
|
| - DCHECK(!instance_);
|
| - instance_ = new IconCache;
|
| -}
|
| -
|
| -// static
|
| -void IconCache::DeleteInstance() {
|
| - DCHECK(instance_);
|
| - delete instance_;
|
| - instance_ = NULL;
|
| -}
|
| -
|
| -// static
|
| -IconCache* IconCache::GetInstance() {
|
| - DCHECK(instance_);
|
| - return instance_;
|
| -}
|
| -
|
| -void IconCache::MarkAllEntryUnused() {
|
| - for (Cache::iterator i = cache_.begin(); i != cache_.end(); ++i)
|
| - i->second.used = false;
|
| -}
|
| -
|
| -void IconCache::PurgeAllUnused() {
|
| - for (Cache::iterator i = cache_.begin(); i != cache_.end();) {
|
| - Cache::iterator current(i);
|
| - ++i;
|
| - if (!current->second.used)
|
| - cache_.erase(current);
|
| - }
|
| -}
|
| -
|
| -bool IconCache::Get(const SkBitmap& src,
|
| - const gfx::Size& size,
|
| - SkBitmap* processed) {
|
| - Cache::iterator it = cache_.find(GetKey(src, size));
|
| - if (it == cache_.end())
|
| - return false;
|
| -
|
| - it->second.used = true;
|
| -
|
| - if (processed)
|
| - *processed = it->second.image;
|
| - return true;
|
| -}
|
| -
|
| -void IconCache::Put(const SkBitmap& src,
|
| - const gfx::Size& size,
|
| - const SkBitmap& processed) {
|
| - const std::string key = GetKey(src, size);
|
| - cache_[key].image = processed;
|
| - cache_[key].used = true;
|
| -}
|
| -
|
| -IconCache::IconCache() {
|
| -}
|
| -
|
| -IconCache::~IconCache() {
|
| -}
|
| -
|
| -} // namespace ash
|
|
|