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 14 namespace suggestions { 15 16 // An interface to retrieve images related to a specific URL. 17 class ImageManager { 18 public: ImageManager()19 ImageManager() {} ~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