@ file : Suppress (" unused ") Ġ// Ġseem Ġa Ġdok ka Ġbug Ċ Ċ package Ġorg . kal as im . dok ka Ċ Ċ import Ġorg . kal as im .* Ċ import Ġorg . kal as im . Priority . Companion . IMPORTANT ĊĊ Ċ fun Ġstates How To () Ġ{ ĊĠĠĠ Ġcreate Simulation Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtraffic Light : ĠState < String > Ġ= ĠState (" red ") ĊĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠComponent (" Car ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġprocess () Ġ= Ġsequence Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhold ( 1 4 , Ġ" d riving ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwait ( traffic Light , Ġ" green ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhold ( 7 , Ġ" d riving Ġagain ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġor Ġusing Ġpredicate Ġsyntax ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwait ( traffic Light ) Ġ{ Ġit . startsWith (" gr ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠComponent (" Traffic Controller ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrepeated Process () Ġ= Ġsequence Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhold ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtraffic Light . value Ġ= Ġ" green " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhold ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtraffic Light . value Ġ= Ġ" red " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġaltern atively Ġwe Ġcould Ġalso Ġuse Ġa Ġstate Ġtrigger ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtraffic Light . trigger (" green ", Ġmax Ġ= Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrun () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġresource How To () Ġ{ ĊĠĠĠ Ġval Ġc ler ks Ġ= ĠResource (" cl er ks ", Ġcapacity Ġ= Ġ 3 ) ĊĠĠĠ Ġval Ġassistance Ġ= ĠResource (" ass istence ", Ġcapacity Ġ= Ġ 3 ) ĊĊĠĠĠ Ġobject Ġ: ĠComponent () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġprocess () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsequence Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthe Ġrecommended Ġway Ġis Ġto Ġuse Ġrequest Ġthat Ġis Ġreleased Ġautomatically ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ( cl er ks ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġconsume Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhold ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġno Ġneed Ġto Ġrelease Ġit , Ġif Ġa Ġ` hon or Block ` Ġis Ġprovided Ġit Ġwill Ġbe Ġreleased Ġautomatically ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġapi Ġto Ġrequest Ġresources Ġwith Ġcustom Ġquantity Ġand Ġprior ities ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ( cl er ks , Ġquantity Ġ= Ġ 2 , Ġpriority Ġ= ĠIMPORT ANT ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġit Ġalso Ġprovides Ġa Ġmore Ġstream lined Ġd sl Ġsupport ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ( cl er ks Ġwith Quantity Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ( cl er ks Ġwith Quantity Ġ 1 , Ġassistance Ġwith Quantity Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ( cl er ks Ġwith Priority Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ( cl er ks Ġwith Priority ĠPriority ( 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ( cl er ks Ġwith Quantity Ġ 3 . 4 Ġand Priority ĠPriority ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ( cl er ks Ġwith Quantity Ġ 3 . 4 Ġand Priority Ġ 3 ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhold ( 2 ) Ġ// Ġconsume Ġit ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġnote Ġthe Ġrequests Ġfrom Ġabove Ġare Ġaccumulated Ġand Ġneed Ġto Ġbe Ġreleased Ġmanually ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelease ( cl er ks , Ġquantity Ġ= Ġ 2 . 0 ) Ġ// Ġrelease Ġsome Ġquantity ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelease ( cl er ks ) Ġ// Ġrelease Ġentire Ġclaim ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ fun Ġevents How To () Ġ{ ĊĠĠĠ Ġclass ĠMy Event ( val Ġmsg : ĠString , Ġtime : ĠTick Time ) Ġ: ĠEvent ( time ) ĊĊĠĠĠ Ġ// Ġcreate Ġsimulation Ġwith Ġno Ġdefault Ġlogging ĊĠĠĠ Ġval Ġsim Ġ= Ġcreate Simulation Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġin Ġplace Ġevent Ġprocessing ĊĠĠĠĠĠĠĠ Ġadd EventListener Ġ{ Ġprintln ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġwe Ġcould Ġalso Ġenable Ġa Ġglobal Ġevent Ġlog ĊĠĠĠĠĠĠĠ Ġenable Event Log () ĊĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠComponent () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġprocess () Ġ= Ġsequence < Component > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog ( My Event (" something Ġmag ical Ġhappened ", Ġnow )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġregister Ġa Ġcustom Ġlog Ġconsumer Ġfor ĠMy Event ĊĠĠĠ Ġsim . addEventListener < My Event > Ġ{ Ġevent Ġ-> Ġprintln (" oh Ġmy : Ġ${ event . msg }") Ġ} ĊĊĠĠĠ Ġsim . run () ĊĊĠĠĠ Ġ// Ġor Ġquery Ġthem Ġfrom Ġthe Ġglobal Ġevent Ġlog ĊĠĠĠ Ġsim . get < Event Log >(). filter Is Instance < My Event >(). forEach Ġ{ Ġprintln ( it . msg ) Ġ} Ċ } ĊĊĊĊ