/* Ċ Ġ* ĠCopyright Ġ 2 0 1 7 ĠThomas ĠVol k Ċ Ġ* Ċ Ġ* ĠLicensed Ġto Ġthe ĠApache ĠSoftware ĠFoundation Ġ( ASF ) Ġunder Ġone Ċ Ġ* Ġor Ġmore Ġcontributor Ġlicense Ġagreements . Ġ ĠSee Ġthe ĠNOTICE Ġfile Ċ Ġ* Ġdistributed Ġwith Ġthis Ġwork Ġfor Ġadditional Ġinformation Ċ Ġ* Ġregarding Ġcopyright Ġownership . Ġ ĠThe ĠASF Ġlicenses Ġthis Ġfile Ċ Ġ* Ġto Ġyou Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ċ Ġ* Ġ" License "); Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ċ Ġ* Ġwith Ġthe ĠLicense . Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ċ Ġ* Ġsoftware Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ċ Ġ* Ġ" AS ĠIS " ĠBASIS , ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY Ċ Ġ* ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ġ ĠSee Ġthe ĠLicense Ġfor Ġthe Ċ Ġ* Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ġlimitations Ċ Ġ* Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ package Ġnet . t 5 3 k . alk ali Ċ Ċ import Ġnet . t 5 3 k . alk ali . test . actor Test Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ Ċ class ĠPing P ong Test Ġ{ ĊĊĠĠĠ Ġclass ĠPing Actor : ĠActor () Ġ{ ĊĠĠĠĠĠĠĠ Ġobject ĠStart ĊĠĠĠĠĠĠĠ Ġobject ĠStop ĊĠĠĠĠĠĠĠ Ġobject ĠPing ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġlast P ong Id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġstarter : ĠActor Reference ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġreceive ( message : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( message ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStart Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsystem (). find (" p ong ") !! Ġsend ĠPing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstarter Ġ= Ġsender () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStop Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender () Ġsend ĠPo ison P ill ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġself () Ġsend ĠPo ison P ill ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstarter !! Ġsend Ġlast P ong Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠP ong Actor . P ong Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast P ong Id Ġ= Ġmessage . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender () Ġsend ĠPing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠP ong Actor : ĠActor () Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠP ong ( val Ġid : ĠInt ) ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġcount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġreceive ( message : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( message ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPing Actor . Ping Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( count Ġ< Ġ 1 0 0 ) Ġsender () Ġsend ĠP ong ( count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġsender () Ġsend ĠPing Actor . Stop ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġping P ong () Ġ{ ĊĠĠĠĠĠĠĠ Ġactor Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġping Ġ= Ġtest System (). actor (" ping ", ĠPing Actor :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest System (). actor (" p ong ", ĠP ong Actor :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġping Ġsend ĠPing Actor . Start ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Message Ġ{ Ġmessage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 9 9 , Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }