package Ġcom . hm ju . streaming . caster Ċ Ċ import Ġandroidx . camera . view . Preview View Ċ import Ġcom . hm ju . streaming . base . Client Ċ import Ġcom . hm ju . streaming . caster . handler . Cast In Bounds Handler Ċ import Ġcom . hm ju . streaming . caster . handler . Channel Write Handler Ċ import Ġcom . hm ju . streaming . caster . manager . Cast Send Manager Ċ import Ġcom . hm ju . streaming . caster . manager . Cast Send ManagerImpl Ċ import Ġcom . hm ju . streaming . constants . Client Type Ċ import Ġcom . hm ju . streaming . constants . Constants Ċ import Ġcom . hm ju . streaming . model . auth . Auth Packet Ċ import Ġcom . hm ju . streaming . utility . J Logger Ċ import Ġio . netty . bootstrap . Bootstrap Ċ import Ġio . netty . channel .* Ċ import Ġio . netty . channel . nio . Nio EventLoop Group Ċ import Ġio . netty . channel . socket . nio . Nio Data gram Channel Ċ import Ġjava . net . Inet SocketAddress Ċ Ċ /** Ċ Ġ* ĠDescription Ġ: Ġë°© ìĨ ¡ ĠìĨ ¡ ì¶ľ ìŀĲ ĠClient Ċ Ġ* Ċ Ġ* ĠCreated Ġby Ġj uh ong min Ġon Ġ 1 0 / 1 0 / 2 1 Ċ Ġ*/ Ċ class ĠC aster Client Ġ: ĠClient () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġsend Manager : ĠCast Send Manager ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtexture View : ĠPreview View ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġset Texture View ( view : ĠPreview View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtexture View Ġ= Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Server Address ( host : ĠString , Ġport : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . host ĊĠĠĠĠĠĠĠ Ġthis . port ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Auth Key ( key : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġservice Auth Key Ġ= Ġkey ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġíģ´ë Ŀ¼ ìĿ´ ìĸ¸ íĬ¸ Ġë°© ìĨ ¡ ĠìĨ ¡ ì¶ľ ìŀĲ Ġor Ġë · ° ìĸ´ ìĹĲ ĠëĶ°ëĿ¼ ĠíĥĢ ìŀħ Ġë¦¬ íĦ´ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠgetType () Ġ= ĠClient Type . CAST ER ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġë©Ķ ëª¨ ë¦¬ Ġíķ´ ìłľ Ġì²ĺë¦¬ Ġíķ¨ìĪĺ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġrelease (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġgroup ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshutdown Grace fully (). addListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel ?. close Future ()?. sync () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġíģ´ë Ŀ¼ ìĿ´ ìĸ¸ íĬ¸ ĠìĥĿìĦ± Ġì²ĺë¦¬ Ġíķ¨ìĪĺ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Client () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( group Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup ?. shutdown Grace fully ()?. sync () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel ?. close Future ()?. sync () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrun Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Ġ= ĠN io EventLoop Group () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBootstrap (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup ( group ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel ( Nio Data gram Channel :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoption ( Channel Option . SO _ BRO ADCAST , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoption ( Channel Option . SO _ S ND BUF , ĠConstants . MAX _ BUF ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoption ( Channel Option . SO _ RC V BUF , ĠConstants . MAX _ BUF ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoption ( Channel Option . RC V BUF _ ALLOC ATOR , ĠFixed Recv Byte Buf Allocator ( Constants . MAX _ BUF )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler ( object Ġ: ĠChannel Initializer < Nio Data gram Channel >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġmethod Ġwill Ġbe Ġcalled Ġonce Ġthe Ġ[ Channel ] Ġwas Ġregistered . ĠAfter Ġthe Ġmethod Ġreturns Ġthis Ġinstance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġwill Ġbe Ġremoved Ġfrom Ġthe Ġ[ Channel Pipeline ] Ġof Ġthe Ġ[ Channel ]. ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġch ĠĠĠĠĠĠĠĠĠĠĠ Ġthe Ġ[ Channel ] Ġwhich Ġwas Ġregistered . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ throws ĠException ĠĠĠ Ġis Ġthrown Ġif Ġan Ġerror Ġoccurs . ĠIn Ġthat Ġcase Ġit Ġwill Ġbe Ġhandled Ġby ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ[. exception Ca ught ] Ġwhich Ġwill Ġby Ġdefault Ġclose ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġthe Ġ[ Channel ]. ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinit Channel ( ch : ĠN io Data gram Channel ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ch Ġ== Ġnull ) Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Manager Ġ= ĠCast Send ManagerImpl ( ch , Ġtexture View !! ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġch . pipeline (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd First (" control ", Ġobject Ġ: ĠChannel Inbound Handler Adapter () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġchannel Active ( ctx : ĠChannel HandlerContext ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . channel Active ( ctx ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ctx Ġ== Ġnull ) Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġch . write And Flush ( Auth Packet ( service Auth Key , ĠgetType ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ Logger . d (" C aster Client ĠActive Ġ${ ctx . channel (). local Address () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd After (" control ", Ġ" in bounds ", ĠCast In Bounds Handler ( send Manager !! )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Last ( Channel Write Handler ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Ġ= Ġconnect ( Inet SocketAddress ( host , Ġport )). sync (). channel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġë¹ Į ëĵľ ĠíĮ¨ íĦ´ ìľ¼ë¡ľ Ġíķľëĭ¤ . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġbuild (): ĠC aster Client Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( host . isEmpty () Ġ|| Ġport Ġ== Ġ 0 ) Ġthrow ĠIllegalArgumentException (" ìłĳ ìĨį íķł ĠìĦľë²Ħ Ġìłķë³´ ê°Ģ Ġìľł í ļ¨ íķĺì§Ģ ĠìķĬ ìĬµëĭĪëĭ¤ .") ĊĠĠĠĠĠĠĠ Ġif Ġ( service Auth Key . isEmpty ()) Ġthrow ĠIllegalArgumentException (" ìĿ¸ ì¦ Ŀ Ġí Ĥ¤ ê¸° ê°Ģ Ġìľł í ļ¨ íķĺì§Ģ ĠìķĬ ìĬµëĭĪëĭ¤ .") ĊĊĠĠĠĠĠĠĠ Ġinit Client () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ }