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