package Ġcom . github . rain k 1 2 0 8 . grp cs ample . client Ċ Ċ import Ġcom . github . rain k 1 2 0 8 . grp cs ample . protos . Cl ac Sample Grpc Kt Ċ import Ġcom . github . rain k 1 2 0 8 . grp cs ample . protos . cl ac Request Ċ import Ġio . grpc . Managed Channel Ċ import Ġio . grpc . Managed Channel Builder Ċ import Ġjava . io . Closeable Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ class ĠCl ac Client ( private Ġval Ġchannel : ĠManaged Channel ): ĠClose able Ġ{ ĊĠĠĠ Ġval Ġstub : ĠCl ac Sample Grpc Kt . Cl ac Sample Coroutine Stub Ġ= ĠCl ac Sample Grpc Kt . Cl ac Sample Coroutine Stub ( channel ) ĊĊĠĠĠ Ġsuspend Ġfun Ġplus ( x : ĠDouble , Ġy : ĠDouble ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġcl ac Request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġx ; Ġthis . y Ġ= Ġy ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġstub . plus ( request ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresponse . result ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġminus ( x : ĠDouble , Ġy : ĠDouble ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġcl ac Request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġx ; Ġthis . y Ġ= Ġy ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġstub . minus ( request ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresponse . result ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġmultiply ( x : ĠDouble , Ġy : ĠDouble ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġcl ac Request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġx ; Ġthis . y Ġ= Ġy ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġstub . multiply ( request ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresponse . result ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġdivide ( x : ĠDouble , Ġy : ĠDouble ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġcl ac Request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġx ; Ġthis . y Ġ= Ġy ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġstub . divide ( request ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresponse . result ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġchannel . shutdown (). await Termination ( 5 , ĠTimeUnit . SECONDS ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ suspend Ġfun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġport Ġ= Ġ 5 0 0 5 1 ĊĠĠĠ Ġval Ġchannel Ġ= ĠManaged Channel Builder . for Address (" localhost ", Ġport ). use Pl aintext (). build () ĊĠĠĠ Ġval Ġclient Ġ= ĠCl ac Client ( channel ) ĊĠĠĠ Ġclient . plus ( 1 0 . 0 Ġ, 2 0 . 0 ) Ċ }