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#ifndef COMPONENTS_SUGGESTIONS_IMAGE_MANAGER_H_ 6#define COMPONENTS_SUGGESTIONS_IMAGE_MANAGER_H_ 7 8#include "base/basictypes.h" 9#include "base/callback.h" 10#include "components/suggestions/proto/suggestions.pb.h" 11#include "ui/gfx/image/image_skia.h" 12#include "url/gurl.h" 13 14namespace suggestions { 15 16// An interface to retrieve images related to a specific URL. 17class ImageManager { 18 public: 19 ImageManager() {} 20 virtual ~ImageManager() {} 21 22 // (Re)Initializes states using data received from a SuggestionService. We're 23 // not doing this in the constructor because an instance may be long-lived. 24 virtual void Initialize(const SuggestionsProfile& suggestions) = 0; 25 26 // Retrieves stored image for website |url| asynchronously. Calls |callback| 27 // with Bitmap pointer if found, and NULL otherwise. 28 virtual void GetImageForURL( 29 const GURL& url, 30 base::Callback<void(const GURL&, const SkBitmap*)> callback) = 0; 31 32 private: 33 DISALLOW_COPY_AND_ASSIGN(ImageManager); 34}; 35 36} // namespace suggestions 37 38#endif // COMPONENTS_SUGGESTIONS_IMAGE_MANAGER_H_ 39