/* Ċ Ġ* ĠThe ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ 2 0 1 7 - 2 0 1 9 ĠNor we g ian ĠUniversity Ġof ĠTechnology Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ċ Ġ* Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING Ġ ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN Ċ Ġ* ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġno . nt nu . ih b . f mi 4 j . importer . f mi 1 Ċ Ċ /** Ċ Ġ* Ċ Ġ* Ġ@ author ĠL ars ĠI var ĠHat led al Ċ Ġ*/ Ċ enum Ġclass ĠF mi Status Kind ( ĊĠĠĠ Ġval Ġcode : ĠInt Ċ ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCan Ġbe Ġcalled Ġwhen Ġthe Ġf mi Do Step Ġfunction Ġreturned Ġf mi Pending . ĊĠĠĠĠ Ġ* ĠThe Ġfunction Ġdeli vers Ġf mi Pending Ġif Ġthe Ġcomputation Ġis Ġnot Ġfinished . ĊĠĠĠĠ Ġ* ĠIf Ġthe Ġcomputation Ġis Ġfinished Ġmean while Ġthe Ġfunction Ġreturns Ġthe Ġresult Ġof Ġthe Ġasynchronous Ġexecuted Ġf mi Do Step (...) Ġcall . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ ĠDO _ STEP _ STATUS ( 0 ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCan Ġbe Ġcalled Ġwhen Ġthe Ġf mi Do Step Ġfunction Ġreturned Ġf mi Pending . ĊĠĠĠĠ Ġ* ĠThe Ġfunction Ġdeli vers Ġa Ġstring Ġwhich Ġinform s Ġabout Ġthe Ġstatus Ġof Ġthe Ġcurrently Ġrunning Ġasynchronous Ġf mi Do Step Ġcomputation ĊĠĠĠĠ Ġ*/ ĊĠĠĠ ĠP ENDING _ STATUS ( 1 ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġtime Ġuntil Ġthe Ġlast Ġcommunication Ġstep Ġwas Ġcomputed Ġsuccessfully . ĊĠĠĠĠ Ġ* ĠCan Ġbe Ġcalled Ġafter Ġf mi Do Step (...) Ġreturned Ġf mi Discard . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ ĠLAST _ SUCCESS FUL _ TIME ( 2 ); ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġvalue Of ( i : ĠInt ): ĠF mi Status Kind Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( kind Ġin Ġvalues ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== Ġkind . code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġkind ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException ("$ i Ġnot Ġin Ġrange Ġof Ġ${ values (). map Ġ{ Ġit . code Ġ}. toList () }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ