blob: 904830cb0cb42c43b5a6bf0b02e5903f0ab98881 [file] [log] [blame]
// Copyright 2016 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.
#ifndef COMPONENTS_IMAGE_FETCHER_IMAGE_DECODER_H_
#define COMPONENTS_IMAGE_FETCHER_IMAGE_DECODER_H_
#include <string>
#include "base/callback_forward.h"
#include "base/macros.h"
namespace gfx {
class Image;
} // namespace gfx
namespace image_fetcher {
using ImageDecodedCallback = base::Callback<void(const gfx::Image&)>;
// ImageDecoder defines the common interface for decoding images.
class ImageDecoder {
public:
ImageDecoder() {}
virtual ~ImageDecoder() {}
// Decodes the passed |image_data| and runs the given callback. The callback
// is run even if decoding the image fails. In case an error occured during
// decoding the image an empty image is passed to the callback.
virtual void DecodeImage(const std::string& image_data,
const ImageDecodedCallback& callback) = 0;
private:
DISALLOW_COPY_AND_ASSIGN(ImageDecoder);
};
} // namespace image_fetcher
#endif // COMPONENTS_IMAGE_FETCHER_IMAGE_DECODER_H_