blob: c0293760240316c81e1873b49344e87e2c041870 [file] [log] [blame]
Cosmos Nicolaouef323db2014-09-07 22:13:28 -07001// +build ignore
2
3package main
4
5import (
6 "fmt"
Cosmos Nicolaou1b3594d2015-02-01 10:05:03 -08007 "log"
Cosmos Nicolaouef323db2014-09-07 22:13:28 -07008
Jiri Simsa6ac95222015-02-23 16:11:49 -08009 "v.io/v23"
10 "v.io/v23/ipc"
Jiri Simsa337af232015-02-27 14:36:46 -080011 "v.io/x/lib/vlog"
Cosmos Nicolaouef323db2014-09-07 22:13:28 -070012
Jiri Simsaffceefa2015-02-28 11:03:34 -080013 _ "v.io/x/ref/profiles/roaming"
Cosmos Nicolaouef323db2014-09-07 22:13:28 -070014)
15
16func main() {
Jiri Simsa6ac95222015-02-23 16:11:49 -080017 ctx, shutdown := v23.Init()
Suharsh Sivakumar19fbf992015-01-23 11:02:27 -080018 defer shutdown()
Cosmos Nicolaouef323db2014-09-07 22:13:28 -070019
Jiri Simsa6ac95222015-02-23 16:11:49 -080020 server, err := v23.NewServer(ctx)
Cosmos Nicolaouef323db2014-09-07 22:13:28 -070021 if err != nil {
Matt Rosencrantz97d67a92015-01-27 21:03:12 -080022 vlog.Fatalf("unexpected error: %q", err)
Cosmos Nicolaouef323db2014-09-07 22:13:28 -070023 }
24
Jiri Simsa6ac95222015-02-23 16:11:49 -080025 listenSpec := v23.GetListenSpec(ctx)
Suharsh Sivakumar19fbf992015-01-23 11:02:27 -080026 fmt.Printf("listen spec: %v\n", listenSpec)
Cosmos Nicolaou1b3594d2015-02-01 10:05:03 -080027
28 _, err = server.Listen(listenSpec)
Cosmos Nicolaouef323db2014-09-07 22:13:28 -070029 if err != nil {
Matt Rosencrantz97d67a92015-01-27 21:03:12 -080030 vlog.Fatalf("unexpected error: %q", err)
Cosmos Nicolaouef323db2014-09-07 22:13:28 -070031 }
Cosmos Nicolaou1b3594d2015-02-01 10:05:03 -080032 err = server.Serve("roamer", &dummy{}, nil)
33 if err != nil {
34 log.Fatalf("unexpected error: %q", err)
Cosmos Nicolaouef323db2014-09-07 22:13:28 -070035 }
Cosmos Nicolaou1b3594d2015-02-01 10:05:03 -080036 watcher := make(chan ipc.NetworkChange, 1)
37 server.WatchNetwork(watcher)
Cosmos Nicolaouef323db2014-09-07 22:13:28 -070038
Cosmos Nicolaou1b3594d2015-02-01 10:05:03 -080039 for {
40 status := server.Status()
41 fmt.Printf("Endpoints: %d created:\n", len(status.Endpoints))
42 for _, ep := range status.Endpoints {
43 fmt.Printf(" %s\n", ep)
44 }
45 fmt.Printf("Mounts: %d mounts:\n", len(status.Mounts))
46 for _, ms := range status.Mounts {
47 fmt.Printf(" %s\n", ms)
48 }
49 change := <-watcher
50 fmt.Printf("Network change: %s", change.DebugString())
51 }
Cosmos Nicolaouef323db2014-09-07 22:13:28 -070052}
53
Cosmos Nicolaou1b3594d2015-02-01 10:05:03 -080054type dummy struct{}
Cosmos Nicolaouef323db2014-09-07 22:13:28 -070055
Matt Rosencrantz5c7ed212015-02-27 22:42:35 -080056func (d *dummy) Echo(call ipc.ServerCall, arg string) (string, error) {
Cosmos Nicolaouef323db2014-09-07 22:13:28 -070057 return arg, nil
58}