package Ġkt . mob ius . flow Ċ Ċ import Ġkt . mob ius . Connect able Ċ import Ġkt . mob ius . Connection Ċ import Ġkt . mob ius . dis pos ables . Composite Disposable Ċ import Ġkt . mob ius . flow . Discard After Dispose Wrapper . Companion . wrap Connection Ċ import Ġkt . mob ius . flow . Discard After Dispose Wrapper . Companion . wrap Consumer Ċ import Ġkt . mob ius . functions . Consumer ĊĊ Ċ /** Ċ Ġ* ĠA Ġ[ Connect able ] Ġthat Ġensures Ġthat Ġ[ Connection ] s Ġcreated Ġby Ġthe Ġwrapped Ċ Ġ* Ġ[ Connect able ] Ġdon 't Ġemit Ġor Ġreceive Ġany Ġvalues Ġafter Ġbeing Ġdisposed . Ċ Ġ* Ċ Ġ* ĠThis Ġonly Ġacts Ġas Ġa Ġsafe guard , Ġyou Ġstill Ġneed Ġto Ġmake Ġsure Ġthat Ġthe Ċ Ġ* ĠConnect able Ġdis poses Ġof Ġresources Ġcorrectly . Ċ Ġ*/ Ċ class ĠDis card After Dispose Connect able < I , ĠO >( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġactual : ĠConnect able < I , ĠO > Ċ ) Ġ: ĠConnect able < I , ĠO > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġconnect ( output : ĠConsumer < O >): ĠConnection < I > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsafe Output Ġ= Ġwrap Consumer ( output ) ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġactual . connect ( safe Output ) ĊĠĠĠĠĠĠĠ Ġval Ġsafe Input Ġ= Ġwrap Connection ( input ) ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Ġ= ĠComposite Disposable . from ( safe Input , Ġsafe Output ) ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠConnection < I > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġaccept ( value : ĠI ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsafe Input . accept ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdispose () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdis posable . dispose () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ