package Ġe ece 5 1 3 . fs . channel Ċ Ċ import Ġe ece 5 1 3 . common . mapper . Byte Mapper Ċ import Ġe ece 5 1 3 . fs . message . Send able Message Factory Ċ import Ġjava . nio . channels . Writable Byte Channel Ċ Ċ open Ġclass ĠSend Object Channel < in ĠT >( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġtype : ĠRing Channel . Type , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġchannel : ĠWrit able Byte Channel , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmessage Factory : ĠSend able Message Factory , ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠobjectMapper : ĠByte Mapper < T > Ċ ) Ġ: ĠRing Channel Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġin Progress Send able Message : ĠSend able Message Factory . Send able Message ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġsend ( obj : ĠT ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġin Progress Ġ= Ġthis . in Progress Send able Message Ġ?: Ġget Send able Message ( obj ) ĊĊĠĠĠĠĠĠĠ Ġin Progress . send ( channel ) ĊĊĠĠĠĠĠĠĠ Ġthis . in Progress Send able Message Ġ= Ġif Ġ( in Progress . complete ) Ġnull Ġelse Ġin Progress ĊĠĠĠĠĠĠĠ Ġreturn Ġin Progress . complete ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Send able Message ( obj : ĠT ): ĠSend able Message Factory . Send able Message Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠbyteArray Ġ= ĠobjectMapper . toByteArray ( obj ) ĊĠĠĠĠĠĠĠ Ġreturn Ġmessage Factory . create ( byteArray ) ĊĠĠĠ Ġ} Ċ } Ċ