/* Ġ-*- mode : java ; Ġc - basic - offset : 2 ; Ġindent - tabs - mode : nil Ġ-*- Ġ*/ Ċ /* Ċ Copyright Ġ( c ) Ġ 2 0 1 1 Ġy mn k , ĠJ Craft , Inc . ĠAll Ġrights Ġreserved . Ċ Ċ Red ist ribution Ġand Ġuse Ġin Ġsource Ġand Ġbinary Ġforms , Ġwith Ġor Ġwithout Ċ modification , Ġare Ġpermitted Ġprovided Ġthat Ġthe Ġfollowing Ġconditions Ġare Ġmet : ĊĊĠĠ 1 . ĠRedistributions Ġof Ġsource Ġcode Ġmust Ġretain Ġthe Ġabove Ġcopyright Ġnotice , ĊĠĠĠĠ Ġthis Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer . ĊĊĠĠ 2 . ĠRedistributions Ġin Ġbinary Ġform Ġmust Ġreproduce Ġthe Ġabove Ġcopyright ĠĊĠĠĠĠ Ġnotice , Ġthis Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer Ġin ĠĊĠĠĠĠ Ġthe Ġdocumentation Ġand / or Ġother Ġmaterials Ġprovided Ġwith Ġthe Ġdistribution . ĊĊĠĠ 3 . ĠThe Ġnames Ġof Ġthe Ġauthors Ġmay Ġnot Ġbe Ġused Ġto Ġendorse Ġor Ġpromote Ġproducts ĊĠĠĠĠ Ġderived Ġfrom Ġthis Ġsoftware Ġwithout Ġspecific Ġprior Ġwritten Ġpermission . Ċ Ċ THIS ĠSOFTWARE ĠIS ĠPROVIDED Ġ`` AS ĠIS '' ĠAND ĠANY ĠEX PRES SED ĠOR ĠIMPLIED ĠWARRANTIES , Ċ INCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠTHE ĠIMPLIED ĠWARRANTIES ĠOF ĠMERCHANTABILITY ĠAND Ċ FITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠARE ĠDISCLAIMED . ĠIN ĠNO ĠEVENT ĠSHALL ĠJ CR AFT , Ċ INC . ĠOR ĠANY ĠCONTRIBUTORS ĠTO ĠTHIS ĠSOFTWARE ĠBE ĠLIABLE ĠFOR ĠANY ĠDIRECT , ĠINDIRECT , Ċ INC IDENTAL , ĠSPECIAL , ĠEXEMPLARY , ĠOR ĠCONSEQUENTIAL ĠDAMAGES Ġ( INCLUDING , ĠBUT ĠNOT Ċ LIMIT ED ĠTO , ĠPROCUREMENT ĠOF ĠSUBSTITUTE ĠGOODS ĠOR ĠSERVICES ; ĠLOSS ĠOF ĠUSE , ĠDATA , Ċ OR ĠPROFITS ; ĠOR ĠBUSINESS ĠINTERRUPTION ) ĠHOWEVER ĠCAUSED ĠAND ĠON ĠANY ĠTHEORY ĠOF Ċ LIABILITY , ĠWHETHER ĠIN ĠCONTRACT , ĠSTRICT ĠLIABILITY , ĠOR ĠTORT Ġ( INCLUDING Ċ NE GLIGENCE ĠOR ĠOTHERWISE ) ĠARISING ĠIN ĠANY ĠWAY ĠOUT ĠOF ĠTHE ĠUSE ĠOF ĠTHIS ĠSOFTWARE , Ċ E VEN ĠIF ĠADVISED ĠOF ĠTHE ĠPOSSIBILITY ĠOF ĠSUCH ĠDAMAGE . Ċ Ġ*/ Ċ /* Ċ Ġ* ĠThis Ġprogram Ġis Ġbased Ġon Ġzlib - 1 . 1 . 3 , Ġso Ġall Ġcredit Ġshould Ġgo Ġauthors Ċ Ġ* ĠJean - lo up ĠG ail ly ( j lo up @ gzip . org ) Ġand ĠMark ĠAd ler ( mad ler @ al umn i . cal tech . edu ) Ċ Ġ* Ġand Ġcontributors Ġof Ġzlib . Ċ Ġ*/ Ċ Ċ package Ġcom . so y wiz . kz lib Ċ Ċ class ĠIn flater Ġ: ĠZ Stream Ġ{ ĊĊ ĉ private Ġvar Ġfinished Ġ= Ġfalse ĊĊ ĉ constructor () Ġ: Ġsuper () Ġ{ Ċĉ ĉ init () Ċ ĉ } ĊĊ ĉ constructor ( wrapper Type : ĠJ Z lib . Wrapper Type ) Ġ: Ġthis ( DEF _ W BITS , Ġwrapper Type ) ĊĊ ĉ constructor ( w : ĠInt , Ġwrapper Type : ĠJ Z lib . Wrapper Type ) Ġ: Ġsuper () Ġ{ Ċĉ ĉ val Ġret Ġ= Ġinit ( w , Ġwrapper Type ) Ċĉ ĉ if Ġ( ret Ġ!= ĠZ _ OK ) Ċĉĉ ĉ throw ĠG ZIP Exception ( ret . toString () Ġ+ Ġ": Ġ" Ġ+ Ġmsg ) Ċ ĉ } ĊĊ ĉ constructor ( nowrap : ĠBoolean ) Ġ: Ġthis ( DEF _ W BITS , Ġnowrap ) ĊĊ ĉ constructor ( w : ĠInt , Ġnowrap : ĠBoolean Ġ= Ġfalse ) Ġ: Ġsuper () Ġ{ Ċĉ ĉ val Ġret Ġ= Ġinit ( w , Ġnowrap ) Ċĉ ĉ if Ġ( ret Ġ!= ĠZ _ OK ) Ċĉĉ ĉ throw ĠG ZIP Exception ( ret . toString () Ġ+ Ġ": Ġ" Ġ+ Ġmsg ) Ċ ĉ } ĊĊ ĉ fun Ġinit ( wrapper Type : ĠJ Z lib . Wrapper Type ): ĠInt Ġ{ Ċĉ ĉ return Ġinit ( DEF _ W BITS , Ġwrapper Type ) Ċ ĉ } ĊĊ ĉ fun Ġinit ( w : ĠInt , Ġwrapper Type : ĠJ Z lib . Wrapper Type ): ĠInt Ġ{ Ċĉ ĉ var Ġw Ġ= Ġw Ċĉ ĉ var Ġnowrap Ġ= Ġfalse Ċĉ ĉ when Ġ( wrapper Type ) Ġ{ Ċĉĉ ĉ JZ lib . W _ NONE Ġ-> Ġnowrap Ġ= Ġtrue Ċĉĉ ĉ JZ lib . W _ GZIP Ġ-> Ġw Ġ+= Ġ 1 6 Ċĉĉ ĉ JZ lib . W _ ANY Ġ-> Ġw Ġ= Ġw Ġor ĠInf late . IN FL ATE _ ANY Ċĉĉ ĉ JZ lib . W _ Z LIB Ġ-> ĠUnit Ċĉĉ ĉ else Ġ-> ĠUnit Ċĉ ĉ } Ċĉ ĉ return Ġinit ( w , Ġnowrap ) Ċ ĉ } ĊĊ ĉ fun Ġinit ( nowrap : ĠBoolean ): ĠInt Ġ{ Ċĉ ĉ return Ġinit ( DEF _ W BITS , Ġnowrap ) Ċ ĉ } ĊĊ ĉ fun Ġinit ( w : ĠInt Ġ= ĠDEF _ W BITS , Ġnowrap : ĠBoolean Ġ= Ġfalse ): ĠInt Ġ{ Ċĉ ĉ finished Ġ= Ġfalse Ċĉ ĉ ist ate Ġ= ĠInf late ( this ) Ċĉ ĉ return Ġist ate !!. inflate Init ( if Ġ( nowrap ) Ġ- w Ġelse Ġw ) Ċ ĉ } ĊĊ ĉ override Ġfun Ġinf late ( f : ĠInt ): ĠInt Ġ{ Ċĉ ĉ if Ġ( ist ate Ġ== Ġnull ) Ġreturn ĠZ _ STREAM _ ERROR Ċĉ ĉ val Ġret Ġ= Ġist ate !!. inflate ( f ) Ċĉ ĉ if Ġ( ret Ġ== ĠZ _ STREAM _ END ) Ċĉĉ ĉ finished Ġ= Ġtrue Ċĉ ĉ return Ġret Ċ ĉ } ĊĊ ĉ override Ġfun Ġend (): ĠInt Ġ{ Ċĉ ĉ finished Ġ= Ġtrue Ċĉ ĉ return Ġif Ġ( ist ate Ġ== Ġnull ) ĠZ _ STREAM _ ERROR Ġelse Ġist ate !!. inflate End () Ċ // ĠĠĠ Ġist ate Ġ= Ġnull ; Ċ ĉ } ĊĊ ĉ fun Ġsync (): ĠInt Ġ{ Ċĉ ĉ return Ġif Ġ( ist ate Ġ== Ġnull ) ĠZ _ STREAM _ ERROR Ġelse Ġist ate !!. inflate Sync () Ċ ĉ } ĊĊ ĉ fun Ġsync Point (): ĠInt Ġ{ Ċĉ ĉ return Ġif Ġ( ist ate Ġ== Ġnull ) ĠZ _ STREAM _ ERROR Ġelse Ġist ate !!. inflate Sync Point () Ċ ĉ } ĊĊ ĉ fun Ġset Dictionary ( dictionary : ĠByteArray , Ġindex : ĠInt , Ġdict Length : ĠInt ): ĠInt Ġ{ Ċĉ ĉ return Ġif Ġ( ist ate Ġ== Ġnull ) ĠZ _ STREAM _ ERROR Ġelse Ġist ate !!. inflate Set Dictionary ( dictionary , Ġindex , Ġdict Length ) Ċ ĉ } ĊĊ ĉ override Ġfun Ġfinished (): ĠBoolean Ġ{ Ċĉ ĉ return Ġist ate !!. mode Ġ== Ġ 1 2 Ġ/* DONE */ Ċ ĉ } ĊĊ ĉ comp anion Ġobject Ġ{ ĊĊĉ ĉ private Ġval ĠMAX _ W BITS Ġ= Ġ 1 5 ĠĠĠĠĠĠĠ Ġ// Ġ 3 2 K ĠL Z 7 7 Ġwindow Ċĉ ĉ private Ġval ĠDEF _ W BITS Ġ= ĠMAX _ W BITS ĊĊĉ ĉ private Ġval ĠZ _ NO _ FLUSH Ġ= Ġ 0 Ċĉ ĉ private Ġval ĠZ _ PAR TIAL _ FLUSH Ġ= Ġ 1 Ċĉ ĉ private Ġval ĠZ _ SYNC _ FLUSH Ġ= Ġ 2 Ċĉ ĉ private Ġval ĠZ _ FULL _ FLUSH Ġ= Ġ 3 Ċĉ ĉ private Ġval ĠZ _ FIN ISH Ġ= Ġ 4 ĊĊĉ ĉ private Ġval ĠMAX _ MEM _ LEVEL Ġ= Ġ 9 ĊĊĉ ĉ private Ġval ĠZ _ OK Ġ= Ġ 0 Ċĉ ĉ private Ġval ĠZ _ STREAM _ END Ġ= Ġ 1 Ċĉ ĉ private Ġval ĠZ _ NEED _ DICT Ġ= Ġ 2 Ċĉ ĉ private Ġval ĠZ _ ERR NO Ġ= Ġ- 1 Ċĉ ĉ private Ġval ĠZ _ STREAM _ ERROR Ġ= Ġ- 2 Ċĉ ĉ private Ġval ĠZ _ DATA _ ERROR Ġ= Ġ- 3 Ċĉ ĉ private Ġval ĠZ _ MEM _ ERROR Ġ= Ġ- 4 Ċĉ ĉ private Ġval ĠZ _ BUF _ ERROR Ġ= Ġ- 5 Ċĉ ĉ private Ġval ĠZ _ VERSION _ ERROR Ġ= Ġ- 6 Ċ ĉ } Ċ } Ċ