/* Ċ * ĠCopyright Ġ 2 0 1 4 - 2 0 2 1 ĠJetBrains Ġs . r . o Ġand Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ */ Ċ Ċ package Ġio . ktor . client . features . cache . storage Ċ Ċ import Ġio . ktor . client . features . cache .* Ċ import Ġio . ktor . http .* Ċ import Ġio . ktor . util . collections .* Ċ Ċ internal Ġclass ĠUn limited Cache Storage Ġ: ĠHttp Cache Storage () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġstore Ġ= ĠConcurrent Map < Url , ĠMutable Set < Http Cache Entry >>() ĊĊĠĠĠ Ġoverride Ġfun Ġstore ( url : ĠUrl , Ġvalue : ĠHttp Cache Entry ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġstore . compute If Absent ( url ) Ġ{ ĠConcurrent Set () Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! data . add ( value )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . remove ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . add ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfind ( url : ĠUrl , Ġvary Keys : ĠMap < String , ĠString >): ĠHttp Cache Entry ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġstore . compute If Absent ( url ) Ġ{ ĠConcurrent Set () Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġdata . find Ġ{ Ġit . vary Keys Ġ== Ġvary Keys Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠfindBy Url ( url : ĠUrl ): ĠSet < Http Cache Entry > Ġ= Ġstore [ url ] Ġ?: Ġempty Set () Ċ } Ċ