// Copyright 2018 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com

#ifndef CORE_FXCODEC_CODEC_CODEC_MODULE_IFACE_H_
#define CORE_FXCODEC_CODEC_CODEC_MODULE_IFACE_H_

#include "core/fxcrt/fx_system.h"
#include "third_party/base/span.h"

class CFX_DIBAttribute;

class CodecModuleIface {
 public:
  class Context {
   public:
    virtual ~Context() = default;
  };

  virtual ~CodecModuleIface() = default;

  // Returns the number of unprocessed bytes remaining in the input buffer.
  virtual FX_FILESIZE GetAvailInput(Context* pContext) const = 0;

  // Provides a new input buffer to the codec. Returns true on success,
  // setting details about the image extracted from the buffer into |pAttribute|
  // (if provided and the codec is capable providing that information).
  virtual bool Input(Context* pContext,
                     pdfium::span<uint8_t> src_buf,
                     CFX_DIBAttribute* pAttribute) = 0;
};

#endif  // CORE_FXCODEC_CODEC_CODEC_MODULE_IFACE_H_
