// When running echo_client, ctx.Args() should contain: // 0: mojo app name // 1: remote endpoint // 2+: string to echo func (delegate *RemoteEchoClientDelegate) Initialize(ctx application.Context) { log.Printf("RemoteEchoClientDelegate.Initialize...") // Parse arguments. Note: May panic if not enough args are given. remoteEndpoint := ctx.Args()[1] echoString := "Hello, Go world!" if len(ctx.Args()) > 2 { echoString = strings.Join(ctx.Args()[2:], " ") } r, p := echo.CreateMessagePipeForRemoteEcho() v23.ConnectToRemoteService(ctx, &r, remoteEndpoint) echoProxy := echo.NewRemoteEchoProxy(p, bindings.GetAsyncWaiter()) log.Printf("RemoteEchoClientDelegate.Initialize calling EchoString...") response, err := echoProxy.EchoString(echoString) if err == nil { fmt.Printf("client: %s\n", response) } else { fmt.Printf("error: %v\n", err) } log.Printf("RemoteEchoClientDelegate.Initialize calling EchoX...") response2, err := echoProxy.EchoX([]bool{true, false, false, true}, echo.AInArg{"A String"}) if err == nil { fmt.Printf("client: %v\n", response2) } else { log.Println("Error: ", err) } fmt.Printf("(done)\n") echoProxy.Close_Proxy() ctx.Close() }
// When running fortune_client, ctx.Args() should contain: // 0: mojo app name // 1: remote endpoint // 2+: (optional) fortune to add // If the fortune to add is omitted, then the fortune_client will Get a fortune. // Otherwise, it will Add the given fortune. func (delegate *FortuneClientDelegate) Initialize(ctx application.Context) { // Parse the arguments. remoteEndpoint := ctx.Args()[1] addFortune := strings.Join(ctx.Args()[2:], " ") log.Printf("FortuneClientDelegate.Initialize... %s", remoteEndpoint) fortuneRequest, fortunePointer := fortune.CreateMessagePipeForFortune() v23.ConnectToRemoteService(ctx, &fortuneRequest, remoteEndpoint) fortuneProxy := fortune.NewFortuneProxy(fortunePointer, bindings.GetAsyncWaiter()) if addFortune != "" { log.Printf("FortuneClientDelegate.Initialize calling Add...") if err := fortuneProxy.Add(addFortune); err != nil { log.Println(err) } else { fmt.Printf("client added: %s\n", addFortune) } } else { log.Printf("FortuneClientDelegate.Initialize calling Get...") response, err := fortuneProxy.Get() if response != "" { fmt.Printf("client (get): %s\n", response) } else { log.Println(err) } } fortuneProxy.Close_Proxy() ctx.Close() }
func createProxy(ctx application.Context) *end_to_end_test.V23ProxyTest_Proxy { // Parse arguments. Note: May panic if not enough args are given. remoteName := *endpointFlag r, p := end_to_end_test.CreateMessagePipeForV23ProxyTest() v23.ConnectToRemoteService(ctx, &r, remoteName) return end_to_end_test.NewV23ProxyTestProxy(p, bindings.GetAsyncWaiter()) }