func (d *delegate) Initialize(mctx application.Context) { // TODO(bjornick): Calling init multiple times in the same process // will be bad. For now, this is ok because this is the only // vanadium service that will be used in the demos and each go library // will be in its own process. roaming.SetArgs(mctx) d.ctx, d.shutdown = v23.Init() if *flagTestMode { // Inject a mock plugin. df, _ := idiscovery.NewFactory(d.ctx, mock.New()) fdiscovery.InjectFactory(df) // Start a mounttable and set the namespace roots. // // Note that we need to listen on a local IP address in order to // accept connections within a GCE instance. d.ctx = v23.WithListenSpec(d.ctx, rpc.ListenSpec{Addrs: rpc.ListenAddrs{{Protocol: "tcp", Address: "127.0.0.1:0"}}}) name, _, err := mounttablelib.StartServers(d.ctx, v23.GetListenSpec(d.ctx), "", "", "", "", "mounttable") if err != nil { panic(err) } ns := v23.GetNamespace(d.ctx) ns.SetRoots(name) } }
func (delegate *delegate) Initialize(context application.Context) { roaming.SetArgs(context) ctx, shutdown := v23.Init() delegate.ctx = ctx delegate.shutdown = shutdown ctx.Infof("delegate.Initialize...") }
func (delegate *delegate) Initialize(context application.Context) { // Start up v23 whenever a v23proxy is begun. // This is done regardless of whether we are initializing this v23proxy for use // as a client or as a server. roaming.SetArgs(context) ctx, shutdown := v23.Init() delegate.ctx = ctx delegate.shutdown = shutdown ctx.Infof("delegate.Initialize...") // TODO(alexfandrianto): Does Mojo stop us from creating too many v23proxy? // Is it 1 per shell? Ideally, each device will only serve 1 of these v23proxy, // but it is not problematic to have extra. _, s, err := v23.WithNewDispatchingServer(ctx, "", &dispatcher{ appctx: context, }) if err != nil { ctx.Fatal("Error serving service: ", err) } delegate.v23Server = s fmt.Println("Listening at:", s.Status().Endpoints[0].Name()) }