/* Copyright (C) 2012 The giomm Development Team
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
 */

#include <glibmm/object.h>
#include <giomm/converter.h>
#include <giomm/zlibcompressor.h>

_DEFS(giomm,gio)
_PINCLUDE(glibmm/private/object_p.h)

namespace Gio
{

class GIOMM_API FileInfo;

/** ZlibDecompressor - Zlib decompressor.
 * ZlibDecompressor is an implementation of Converter that decompresses data
 * compressed with zlib.
 * @newin{2,34}
 */
class GIOMM_API ZlibDecompressor : public Glib::Object, public Converter
{
  _CLASS_GOBJECT(ZlibDecompressor, GZlibDecompressor, G_ZLIB_DECOMPRESSOR, Glib::Object, GObject, , , GIOMM_API)
  _IMPLEMENTS_INTERFACE(Converter)

protected:
  _WRAP_CTOR(ZlibDecompressor(ZlibCompressorFormat format), g_zlib_decompressor_new)

public:
  _WRAP_METHOD_DOCS_ONLY(g_zlib_decompressor_new)
  _WRAP_CREATE(ZlibCompressorFormat format)

  _WRAP_METHOD(Glib::RefPtr<FileInfo> get_file_info(), g_zlib_decompressor_get_file_info)
  _WRAP_METHOD(Glib::RefPtr<const FileInfo> get_file_info() const, g_zlib_decompressor_get_file_info, constversion)

  _WRAP_PROPERTY("file-info", Glib::RefPtr<FileInfo>)
  _WRAP_PROPERTY("format", ZlibCompressorFormat)
};

} // namespace Gio
