/*
Zlib – библиотека сжатия данных общего назначения. Версия 1.1.0
Это изменённая объектно-ориентированная версия библиотеки, полностью
совместимая с оригинальной библиотекой.
Copyright © 1995–2005 Jean-loup Gailly и Mark Adler
Copyright © 2000–2011 ymnk, JCraft, Inc.
Copyright © 2016–2017, 2019–2023, 2025 Малик Разработчик
Эта библиотека поставляется «как есть», без каких-либо явных или
подразумеваемых гарантий. Ни при каких обстоятельствах авторы не
несут какой-либо ответственности в случае потери данных вследствие
использования данной библиотеки.
Разрешается всем использовать эту библиотеку для любых целей, в том
числе и для коммерческих приложений, а также изменять её и
распространять свободно при соблюдении следующих условий:
1. Оригинал библиотеки не должен быть искажён; вы не должны
заявлять, что именно вы написали оригинальную библиотеку. Если вы
используете эту библиотеку в своём программном продукте, то ссылка
на авторов библиотеки была бы желательна, но это не является
обязательным требованием.
2. Изменённые версии исходных текстов должны быть отчётливо
маркированы и не должны выдаваться за оригинал библиотеки.
3. Эти замечания не могут быть удалены либо изменены при
каком-либо варианте распространения исходных текстов.
*/
package malik.emulator.compression.zlib;
public final class Inflater extends ZStream
{
public Inflater() {
init();
}
public Inflater(int wbits) throws GZIPException {
this(wbits, false);
}
public Inflater(int wbits, boolean nowrap) throws GZIPException {
int ret;
if((ret = init(wbits, nowrap)) != OK)
{
throw new GZIPException(ret + ": " + message);
}
}
public int inflate(int flush) {
return super.inflate(flush);
}
public boolean finished() {
return istate.mode == 12;
}
public int init() {
return init(DEF_WBITS);
}
public int init(boolean nowrap) {
return init(DEF_WBITS, nowrap);
}
public int init(int wbits) {
return init(wbits, false);
}
public int init(int wbits, boolean nowrap) {
return (istate = new Inflate(this)).inflateInit(nowrap ? -wbits : wbits);
}
public int sync() {
return istate == null ? STREAM_ERROR : istate.inflateSync();
}
public int syncPoint() {
return istate == null ? STREAM_ERROR : istate.inflateSyncPoint();
}
public int setDictionary(byte[] dictionary, int dictLength) {
return istate == null ? STREAM_ERROR : istate.inflateSetDictionary(dictionary, dictLength);
}
public int end() {
int result;
if(istate == null) return STREAM_ERROR;
result = istate.inflateEnd();
istate = null;
return result;
}
}