package Ġsnow p low jav at rack er tracker Ċ Ċ import Ġcom . snow p low analytics . snow p low . tracker . Device Platform Ċ import Ġcom . snow p low analytics . snow p low . tracker . Tracker Ċ import Ġcom . snow p low analytics . snow p low . tracker . emitter . Batch Emitter Ċ import Ġcom . snow p low analytics . snow p low . tracker . emitter . Emitter Ċ import Ġcom . snow p low analytics . snow p low . tracker . emitter . Request Callback Ċ import Ġcom . snow p low analytics . snow p low . tracker . events . Event Ċ import Ġcom . snow p low analytics . snow p low . tracker . http . Apache HttpClient Adapter Ċ import Ġorg . apache . http . impl . client . HttpClient s Ċ Ċ type alias ĠSuccess Callback Ġ= Ġ( success Count : ĠInt ) Ġ-> ĠUnit Ċ type alias ĠFailure Callback Ġ= Ġ( success Count : ĠInt , Ġfailed Events : ĠList < Event >) Ġ-> ĠUnit Ċ Ċ /** Ċ Ġ* ĠSends ĠSnow p low Ġevents Ġto Ġthe ĠSnow p low Ġcollector Ċ Ġ* Ċ Ġ* Ġ@ param ĠappId Ġsnow p low Ġapplication ĠID Ċ Ġ* Ġ@ param Ġname Space Ġsnow p low Ġtracker Ġname Ċ Ġ* Ġ@ param Ġcollector Url Ġsnow p low ĠURL Ċ Ġ* Ġ@ param ĠbufferSize ĠSpecifies Ġhow Ġmany Ġevents Ġgo Ġinto Ġa ĠPOST , Ġdefault Ġ 1 Ċ Ġ* Ġ@ param Ġthread Count ĠThe Ġnumber Ġof ĠThread s Ġthat Ġcan Ġbe Ġused Ġto Ġsend Ġevents , Ġdefault Ġ 5 0 Ċ Ġ* Ġ@ param Ġretry Count ĠThe Ġnumber Ġof Ġretry Ġattempts Ġbefore Ġcalling Ġ[ Failure Callback ], Ġdefault Ġ 5 Ċ Ġ* Ġ@ param Ġbase 6 4 Ġenable Ġbase Ġ 6 4 Ġencoding , Ġdefault Ġtrue Ċ Ġ* Ġ@ param ĠonSuccess Ġ[ Success Callback ] Ġcalled Ġto Ġeach Ġsuccess Ġrequest , Ġdefault Ġnull Ċ Ġ* Ġ@ param Ġon Failure Ġ[ Failure Callback ] Ġcalled Ġto Ġeach Ġfailed Ġrequest , Ġdefault Ġnull Ċ Ġ*/ Ċ fun Ġsnow p low Dispatcher ( ĊĠĠĠ ĠappId : ĠString , ĊĠĠĠ Ġname Space : ĠString , ĊĠĠĠ Ġcollector Url : ĠString , ĊĠĠĠ ĠbufferSize : ĠInt Ġ= Ġ 1 , ĊĠĠĠ Ġthread Count : ĠInt Ġ= Ġ 5 0 , ĊĠĠĠ Ġretry Count : ĠInt Ġ= Ġ 5 , ĊĠĠĠ Ġbase 6 4 : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ ĠonSuccess : ĠSuccess Callback ? Ġ= Ġnull , ĊĠĠĠ Ġon Failure : ĠFailure Callback ? Ġ= Ġnull Ċ ): ĠSnow p low Dispatcher Ġ= ĠSnow p low Dispatcher ( ĊĠĠĠ Ġtracker ( ĊĠĠĠĠĠĠĠ Ġname Space , ĠappId , Ġbase 6 4 , ĊĠĠĠĠĠĠĠ Ġemitter ( collector Url , ĠbufferSize , Ġthread Count , ĠonSuccess , Ġ{ Ġsuccess Count , Ġfailed Events Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfailed Events . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRetry Failed Events ( Snow p low App Properties ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠappId Ġ= ĠappId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollector Url Ġ= Ġcollector Url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Space Ġ= Ġname Space , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Base 6 4 Encoded Ġ= Ġbase 6 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemitter BufferSize Ġ= ĠbufferSize , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemitter Thread Count Ġ= Ġthread Count ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġretry Count Ġ= Ġretry Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess Callback Ġ= ĠonSuccess , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Failure Callback Ġ= Ġon Failure ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). send Event ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ) Ċ ) Ċ Ċ internal Ġfun Ġtracker ( ĊĠĠĠ Ġname Space : ĠString , ĊĠĠĠ ĠappId : ĠString , ĊĠĠĠ Ġbase 6 4 : ĠBoolean , ĊĠĠĠ Ġemitter : ĠEmit ter Ċ ): ĠTracker Ġ= ĠTracker ĊĠĠĠ Ġ. Tracker Builder ( emitter , Ġname Space , ĠappId ) ĊĠĠĠ Ġ. base 6 4 ( base 6 4 ) ĊĠĠĠ Ġ. platform ( Device Platform . General ) ĊĠĠĠ Ġ. build () Ċ Ċ internal Ġfun Ġemitter ( ĊĠĠĠ Ġcollector Url : ĠString , ĊĠĠĠ Ġemitter Size : ĠInt , ĊĠĠĠ Ġthread Count : ĠInt , ĊĠĠĠ ĠonSuccess : ĠSuccess Callback ?, ĊĠĠĠ Ġon Failure : ĠFailure Callback ? Ċ ) Ġ= ĠBatch Emitter ĊĠĠĠ Ġ. builder () ĊĠĠĠ Ġ. thread Count ( thread Count ) ĊĠĠĠ Ġ. httpClient Adapter ( apache HttpClient Adapter ( collector Url )) ĊĠĠĠ Ġ. request Callback ( request Callback ( on Success , Ġon Failure )) ĊĠĠĠ Ġ. buffer Size ( emitter Size ) ĊĠĠĠ Ġ. build () Ċ Ċ private Ġfun Ġapache HttpClient Adapter ( collector Url : ĠString ): ĠApache HttpClient Adapter Ġ= ĊĠĠĠ ĠApache HttpClient Adapter ĊĠĠĠĠĠĠĠ Ġ. builder () ĊĠĠĠĠĠĠĠ Ġ. httpClient ( HttpClient s . custom (). disable Cookie Management (). build ()) ĊĠĠĠĠĠĠĠ Ġ. url ( collector Url ) ĊĠĠĠĠĠĠĠ Ġ. build () Ċ Ċ private Ġfun Ġrequest Callback ( on Success : ĠSuccess Callback ?, Ġon Failure : ĠFailure Callback ?): ĠRequest Callback Ġ= ĊĠĠĠ Ġobject Ġ: ĠRequest Callback Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( success Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess ?. let Ġ{ Ġit ( success Count ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( success Count : ĠInt , Ġfailed Events : ĠList < Event >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Failure ?. let Ġ{ Ġit ( success Count , Ġfailed Events ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ