1 // Copyright 2016 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 CHROME_BROWSER_IMAGE_FETCHER_IMAGE_DECODER_IMPL_H_ 6 #define CHROME_BROWSER_IMAGE_FETCHER_IMAGE_DECODER_IMPL_H_ 7 8 #include <memory> 9 #include <vector> 10 11 #include "chrome/browser/image_decoder/image_decoder.h" 12 #include "components/image_fetcher/core/image_decoder.h" 13 14 // image_fetcher::ImageDecoder implementation. 15 class ImageDecoderImpl : public image_fetcher::ImageDecoder { 16 public: 17 ImageDecoderImpl(); 18 ~ImageDecoderImpl() override; 19 20 void DecodeImage(const std::string& image_data, 21 const gfx::Size& desired_image_frame_size, 22 image_fetcher::ImageDecodedCallback callback) override; 23 24 private: 25 class DecodeImageRequest; 26 27 // Removes the passed image decode |request| from the internal request queue. 28 void RemoveDecodeImageRequest(DecodeImageRequest* request); 29 30 // All active image decoding requests. 31 std::vector<std::unique_ptr<DecodeImageRequest>> decode_image_requests_; 32 33 DISALLOW_COPY_AND_ASSIGN(ImageDecoderImpl); 34 }; 35 36 #endif // CHROME_BROWSER_IMAGE_FETCHER_IMAGE_DECODER_IMPL_H_ 37