/* Ċ Ġ* ĠCopyright ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . ĠAll ĠRights ĠReserved . Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 . Ċ Ġ*/ Ċ Ċ package Ġaws . sdk . kotlin . crt . http Ċ Ċ import Ġaws . sdk . kotlin . crt . io .* Ċ Ċ /** Ċ Ġ* ĠConfiguration Ġoptions Ġfor Ġan Ġ[ HttpClient ConnectionManager ] Ġinstance Ċ Ġ*/ Ċ public Ġclass ĠHttpClient ConnectionManager Options Ġinternal Ġconstructor ( ĊĠĠĠ Ġbuilder : ĠHttpClient ConnectionManager Options Builder Ċ ) Ġ{ ĊĠĠĠ Ġpublic Ġval Ġuri : ĠUri Ġ= Ġrequire NotNull ( builder . uri ) Ġ{ Ġ" URI Ġis Ġrequired " Ġ} ĊĠĠĠ Ġpublic Ġval Ġclient Bootstrap : ĠClient Bootstrap Ġ= Ġrequire NotNull ( builder . client Bootstrap ) Ġ{ Ġ" Client Bootstrap Ġis Ġrequired " Ġ} ĊĠĠĠ Ġpublic Ġval Ġsocket Options : ĠSocket Options Ġ= Ġrequire NotNull ( builder . socket Options ) Ġ{ Ġ" Socket Options Ġis Ġrequired " Ġ} ĊĠĠĠ Ġpublic Ġval Ġtls Context : ĠT ls Context ? Ġ= Ġbuilder . tls Context ĊĠĠĠ Ġpublic Ġval Ġinitial Window Size : ĠInt Ġ= Ġbuilder . initial Window Size ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMax Ġconnections Ġthe Ġmanager Ġcan Ġcontain ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġmax Connections : ĠInt Ġ= Ġbuilder . max Connections ĊĊĠĠĠ Ġpublic Ġval Ġproxy Options : ĠHttp Proxy Options ? Ġ= Ġbuilder . proxy Options ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEnables Ġmanual Ġread Ġback Ġpressure . ĠIf Ġfalse Ġdata Ġar rives Ġas Ġfast Ġas Ġpossible . ĊĠĠĠĠ Ġ* ĠSee Ġ[ Http Stream . increment Window ] Ġdocumentation . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġmanual Window Management : ĠBoolean Ġ= Ġbuilder . manual Window Management ĊĠĠĠ Ġpublic Ġval Ġmonitoring Options : ĠHttp Monitoring Options ? Ġ= Ġbuilder . monitoring Options ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġset Ġto Ġa Ġnon - zero Ġvalue , Ġthen Ġconnections Ġthat Ġstay Ġin Ġthe Ġpool Ġlonger Ġthan Ġthe Ġspecified ĊĠĠĠĠ Ġ* Ġtimeout Ġwill Ġbe Ġclosed Ġautomatically . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġmax Connection Idle Ms : ĠLong Ġ= Ġbuilder . max Connection Idle Ms ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( initial Window Size Ġ> Ġ 0 ) Ġ{ Ġ" Window Ġsize Ġmust Ġbe Ġ> Ġ 0 " Ġ} ĊĠĠĠĠĠĠĠ Ġrequire ( max Connections Ġ> Ġ 0 ) Ġ{ Ġ" Max Ġconnections Ġmust Ġbe Ġ> Ġ 0 " Ġ} ĊĠĠĠĠĠĠĠ Ġrequire ( uri . scheme . is Http ()) Ġ{ Ġ" URI Ġhas Ġan Ġunknown Ġscheme : Ġ${ uri . scheme }" Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( uri . scheme . requires Tls ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire NotNull ( tls Context ) Ġ{ Ġ" Tls Context Ġrequired Ġby ĠURI Ġscheme : Ġ${ uri . scheme }" Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġpublic Ġconst Ġval ĠDEFAULT _ INITIAL _ WINDOW _ SIZE : ĠInt Ġ= Ġ 1 6 Ġ* Ġ 1 0 2 4 ĊĠĠĠĠĠĠĠ Ġpublic Ġconst Ġval ĠDEFAULT _ MAX _ CONNECTION S : ĠInt Ġ= Ġ 2 ĊĊĠĠĠĠĠĠĠ Ġpublic Ġfun Ġbuild ( block : ĠHttpClient ConnectionManager Options Builder . () Ġ-> ĠUnit ): ĠHttpClient ConnectionManager Options Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpClient ConnectionManager Options Builder (). apply ( block ). build () ĊĠĠĠ Ġ} Ċ } Ċ Ċ public Ġclass ĠHttpClient ConnectionManager Options Builder Ġ{ ĊĠĠĠ Ġpublic Ġfun Ġbuild (): ĠHttpClient ConnectionManager Options Ġ= ĠHttpClient ConnectionManager Options ( this ) ĊĊĠĠĠ Ġpublic Ġvar Ġuri : ĠUri ? Ġ= Ġnull ĊĊĠĠĠ Ġpublic Ġfun Ġuri ( block : ĠUri Builder . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġuri Ġ= ĠUri Builder (). apply ( block ). build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġvar Ġclient Bootstrap : ĠClient Bootstrap ? Ġ= Ġnull ĊĊĠĠĠ Ġpublic Ġvar Ġsocket Options : ĠSocket Options ? Ġ= Ġnull ĊĊĠĠĠ Ġpublic Ġvar Ġtls Context : ĠT ls Context ? Ġ= Ġnull ĊĊĠĠĠ Ġpublic Ġvar Ġinitial Window Size : ĠInt Ġ= ĠHttpClient ConnectionManager Options . DEFAULT _ INITIAL _ WINDOW _ SIZE ĊĊĠĠĠ Ġpublic Ġvar Ġmax Connections : ĠInt Ġ= ĠHttpClient ConnectionManager Options . DEFAULT _ MAX _ CONNECTION S ĊĊĠĠĠ Ġpublic Ġvar Ġproxy Options : ĠHttp Proxy Options ? Ġ= Ġnull ĊĊĠĠĠ Ġpublic Ġvar Ġmanual Window Management : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġpublic Ġvar Ġmonitoring Options : ĠHttp Monitoring Options ? Ġ= Ġnull ĊĊĠĠĠ Ġpublic Ġvar Ġmax Connection Idle Ms : ĠLong Ġ= Ġ 0 Ċ } Ċ