package Ġorg . me ch d ancer . data flow . blocks Ċ Ċ import Ġorg . me ch d ancer . data flow . blocks . Target Type . Broadcast Ċ import Ġorg . me ch d ancer . data flow . blocks . Target Type . Col d Ċ import Ġorg . me ch d ancer . data flow . core . Block Base Ċ import Ġorg . me ch d ancer . data flow . core . Feedback Ċ import Ġorg . me ch d ancer . data flow . core . Feedback . Accepted Ċ import Ġorg . me ch d ancer . data flow . core . int ef aces . I Block Ċ import Ġorg . me ch d ancer . data flow . core . int ef aces . IE gress Ċ import Ġorg . me ch d ancer . data flow . core . int ef aces . IF ull y Block Ċ import Ġorg . me ch d ancer . data flow . core . int ef aces . IP ost able . Default Source Ċ import Ġorg . me ch d ancer . data flow . core . int ef aces . IT arget Ċ import Ġorg . me ch d ancer . data flow . core . internal .* Ċ import Ġorg . me ch d ancer . data flow . core . options . Execution Options Ċ import Ġorg . me ch d ancer . data flow . core . options . Link Options Ċ Ċ class ĠStandard Block < T In , ĠT Out >( ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ ĠbufferSize : ĠInt , ĊĠĠĠ Ġprivate Ġval Ġtarget Type : ĠTarget Type , ĊĠĠĠ Ġoptions : ĠExecution Options , ĊĠĠĠ Ġprivate Ġval Ġmap : Ġsuspend Ġ( T In ) Ġ-> ĠT Out Ċ ) Ġ: ĠI Fully Block < T In , ĠT Out >, ĠI Block Ġby ĠBlock Base ( name ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlink Manager Ġ= ĠLink Manager ( this ) ĊĠĠĠ Ġprivate Ġval Ġreceive Core Ġ= ĠReceive Core < TO ut >() ĊĠĠĠ Ġprivate Ġval Ġsource Core Ġ= ĠSource Core < TO ut >( buffer Size ) ĊĠĠĠ Ġprivate Ġval Ġtarget Core Ġ= ĠTarget Core < T In >( options ) ĊĠĠĠ Ġ{ Ġevent Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġout Ġ= Ġmap ( event ) ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġsource Core . offer ( out ) ĊĠĠĠĠĠĠĠ Ġval Ġalt itude s Ġ= Ġlink Manager . offer ( id , Ġout ) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Type Ġ== ĠC old Ġ&& Ġalt itude s . none ( Feedback :: positive ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Core Ġconsume Ġid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Type Ġ== ĠBroadcast Ġ|| ĠAccept ed Ġ! in Ġalt itude s ĠĠĠĠĠĠĠ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceive Core . call () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġdefault Source Ġby Ġlazy Ġ{ ĠDefault Source ( this ) Ġ} ĊĠĠĠ Ġoverride Ġval Ġtargets Ġget () Ġ= Ġlink Manager . targets ĊĊĠĠĠ Ġval ĠbufferSize Ġget () Ġ= Ġsource Core . buffer Size ĊĠĠĠ Ġfun Ġclear () Ġ= Ġsource Core . clear () ĊĊĠĠĠ Ġoverride Ġfun Ġoffer ( id : ĠLong , Ġe gress : ĠIE gress < T In >) Ġ= ĊĠĠĠĠĠĠĠ Ġtarget Core . offer ( id , Ġe gress ) ĊĊĠĠĠ Ġoverride Ġfun Ġconsume ( id : ĠLong ) Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( target Type Ġ== ĠBroadcast ) Ġsource Core [ id ] ĊĠĠĠĠĠĠĠ Ġelse Ġsource Core Ġconsume Ġid ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġreceive () Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( target Type Ġ== ĠBroadcast ) Ġreceive Core Ġget From Ġsource Core ĊĠĠĠĠĠĠĠ Ġelse Ġreceive Core Ġconsume From Ġsource Core ĊĊĠĠĠ Ġoverride Ġfun Ġlink To ( target : ĠI Target < TO ut >, Ġoptions : ĠLink Options < TO ut >) Ġ= ĊĠĠĠĠĠĠĠ Ġlink Manager . link To ( target , Ġoptions ) Ċ } Ċ