/* Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ*/ Ċ Ċ @ file : Ver ik Ċ @ file : Suppress (" ClassName ", Ġ" Convert Secondary Constructor To Primary ") Ċ Ċ import Ġimported . u vm _ pkg . u vm _ component Ċ import Ġimported . u vm _ pkg . u vm _ phase Ċ import Ġimported . u vm _ pkg . u vm _ put _ port Ċ import Ġio . ver ik . core .* Ċ Ċ class Ġproducer Ġ: Ġu vm _ component Ġ{ ĊĊĠĠĠ Ġ@ In j ĊĠĠĠ Ġval Ġheader Ġ= Ġ"` u vm _ component _ utils (${ t < producer >() }); " ĊĊĠĠĠ Ġvar Ġshared Ġ= Ġ 0 ĊĠĠĠ Ġlateinit Ġvar Ġput _ port _ h : Ġu vm _ put _ port < Int > ĊĊĠĠĠ Ġoverride Ġfun Ġbuild _ phase ( phase : Ġu vm _ phase ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġput _ port _ h Ġ= Ġu vm _ put _ port (" put _ port _ h ", Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Task ĊĠĠĠ Ġoverride Ġfun Ġrun _ phase ( phase : Ġu vm _ phase ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġphase !!. raise _ obj ection ( this ) ĊĠĠĠĠĠĠĠ Ġrepeat ( 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput _ port _ h . put ( ++ shared ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("${ time ()} ns ĠSent : Ġ$ shared ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġphase . drop _ obj ection ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( name : ĠString , Ġparent : Ġu vm _ component ?) Ġ: Ġsuper ( name , Ġparent ) Ċ } Ċ