/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠFre der ick ĠBa ier Ċ Ġ* Ċ Ġ* Ġ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 Ġeu . the simple cloud . client server api . testing Ċ Ċ import Ġeu . the simple cloud . client server api . lib . connection . Abstract Connection Ċ import Ġeu . the simple cloud . client server api . lib . connection . I Connection Ċ import Ġeu . the simple cloud . client server api . lib . packet . Wrapped Packet Ċ import Ġeu . the simple cloud . client server api . lib . promise . Communication Promise Ċ import Ġeu . the simple cloud . client server api . lib . promise . IC om munication Promise Ċ import Ġjava . io . IOException Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠIntelliJ ĠIDEA . Ċ Ġ* ĠDate : Ġ 1 2 . 0 6 . 2 0 2 0 Ċ Ġ* ĠTime : Ġ 0 9 : 2 0 Ċ Ġ* Ġ@ author ĠFre der ick ĠBa ier Ċ Ġ*/ Ċ Ċ abstract Ġclass ĠAbstract Test Connection () Ġ: ĠAbstract Connection () Ġ{ ĊĊĊĠĠĠ Ġ@ Volatile ĊĠĠĠ Ġvar Ġother Side Connection : ĠI Connection ? Ġ= Ġnull ĊĊĊĠĠĠ Ġoverride Ġfun Ġsend Packet ( wrapped Packet : ĠWr apped Packet , Ġpromise : ĠI Communication Promise < Any >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! isOpen ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠIOException (" Connection Ġis Ġclosed . ĠPacket Ġto Ġsend Ġwas Ġ${ wrapped Packet . packet Data . sent Packet Name }. ĠThis : Ġ${ this :: class . java . name }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpromise . try Failure ( exception ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġexception ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠNetwork Test Manager . send Packet ( this , Ġwrapped Packet ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠisOpen (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . other Side Connection Ġ!= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclose Connection (): ĠI Communication Promise < Unit > Ġ{ ĊĠĠĠĠĠĠĠ ĠNetwork Test Manager . close Connection ( this ) ĊĠĠĠĠĠĠĠ Ġreturn ĠCommunication Promise . of ( Unit ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Host (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! isOpen ()) Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn Ġ" 1 2 7 . 0 . 0 . 1 " ĊĠĠĠ Ġ} ĊĊ Ċ } ĊĊ