package Ġcom . a all am . under wave . internal . cache . memory Ċ Ċ import Ġcom . a all am . under wave . internal . cache . Cache Ċ import Ġcom . a all am . under wave . internal . cache . memory . bitmap . Bitmap L ru Cache Ċ import Ġcom . a all am . under wave . internal . cache . memory . bitmap . Bitmap Pool Ċ import Ġcom . a all am . under wave . internal . extension . log Ċ import Ġcom . a all am . under wave . internal . image . Bitmap Ċ Ċ /** Ċ Ġ* ĠA Ġmemory Ġ[ Cache ] Ġimplant ation Ġthat Ġholds Ġreferences Ġto Ġa Ġlimited Ġnumber Ġof Ġvalues . Ċ Ġ* Ċ Ġ* Ġ@ param Ġbitmap Pool Ġbitmap Ġpool Ġto Ġhold Ġreferences Ġto Ġbit maps . Ċ Ġ* Ġ@ param Ġbitmap L ru Cache Ġbitmap ĠL RU Ġcache . Ċ Ġ*/ Ċ internal Ġactual Ġclass ĠMemory Cache Ġactual Ġconstructor ( ĊĠĠĠ Ġval Ġbitmap Pool : ĠBitmap Pool , ĊĠĠĠ Ġprivate Ġval Ġbitmap L ru Cache : ĠBitmap L ru Cache Ċ ) Ġ: ĠCache < String , ĠBitmap > Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget ( key : ĠString ): ĠBitmap ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbitmap L ru Cache . get ( key ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġput ( key : ĠString , Ġvalue : ĠBitmap ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbitmap L ru Cache . put ( key , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsize (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbitmap L ru Cache . size (). to Long () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġlog (" clear Ġmemory : Ġ${ size ()} Ġkb ") ĊĠĠĠĠĠĠĠ Ġbitmap L ru Cache . ev ict All () ĊĠĠĠĠĠĠĠ Ġlog (" clear Ġbitmap Ġpool : Ġ${ bitmap Pool . size } Ġelements ") ĊĠĠĠĠĠĠĠ Ġbitmap Pool . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCreates Ġa Ġnew Ġ[ Memory Cache ] Ġobject . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( bitmap Pool : ĠBitmap Pool , Ġsize : ĠInt ): ĠMemory Cache Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbitmap L ru Cache Ġ= ĠBitmap L ru Cache ( size , Ġbitmap Pool ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMemory Cache ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap Pool Ġ= Ġbitmap Pool , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap L ru Cache Ġ= Ġbitmap L ru Cache ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ