package Ġcom . bos w el ja . watch connection . t izen . message . sa helpers Ċ Ċ import Ġcom . s amsung . android . sdk . access ory . S AA gent V 2 Ċ import Ġcom . s amsung . android . sdk . access ory . SA Message Ċ import Ġcom . s amsung . android . sdk . access ory . SAP eer Agent Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġkotlinx . serialization . Experimental Serialization Api Ċ import Ġkotlinx . serialization . encode To ByteArray Ċ import Ġkotlinx . serialization . protobuf . Proto Buf Ċ Ċ @ Opt In ( Experimental Serialization Api :: class ) Ċ internal Ġclass ĠSA Message Sender ( agent : ĠS AA gent V 2 ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġsa Message Ġ= Ġobject Ġ: ĠSA Message ( agent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Receive ( peer : ĠSAP eer Agent ?, Ġbytes : ĠByteArray ?) Ġ{ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Sent ( peer : ĠSAP eer Agent ?, Ġid : ĠInt ) Ġ{ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( peer : ĠSAP eer Agent ?, Ġid : ĠInt , ĠerrorCode : ĠInt ) Ġ{ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun ĠsendMessage ( ĊĠĠĠĠĠĠĠ Ġtarget : ĠSAP eer Agent , ĊĠĠĠĠĠĠĠ Ġpath : ĠString , ĊĠĠĠĠĠĠĠ Ġdata : ĠByteArray ? ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠBuild Ġmessage Ġbytes ĊĠĠĠĠĠĠĠ Ġval Ġmessage Proto Ġ= ĠMessage Proto ( path , Ġdata Ġ?: Ġbyte ArrayOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= ĠProto Buf . encode To ByteArray ( message Proto ) ĊĠĠĠĠĠĠĠ Ġrequire ( bytes . size Ġ> Ġtarget . max Allowed Message Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Message Ġtoo Ġbig Ġto Ġsend ! ĠTotal Ġ= Ġ${ bytes . size }, ĠMax Ġ= Ġ${ target . max Allowed Message Size }" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSend Ġthe Ġmessage ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsa Message . secure Send ( target , Ġbytes ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġdon 't Ġneed Ġthe Ġcallback Ġhere , Ġthe Ġonly Ġadvantage Ġit Ġprovides Ġis Ġdetermining Ġthe Ġerror ĊĠĠĠĠĠĠĠ Ġ// Ġcode , Ġwhich Ġwe Ġdon 't Ġcurrently Ġneed ĊĠĠĠĠĠĠĠ Ġreturn Ġid Ġ> Ġ 0 ĊĠĠĠ Ġ} Ċ } Ċ