Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 1 | // +build ignore |
| 2 | |
| 3 | package main |
| 4 | |
| 5 | import ( |
| 6 | "fmt" |
Cosmos Nicolaou | 1b3594d | 2015-02-01 10:05:03 -0800 | [diff] [blame] | 7 | "log" |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 8 | |
Jiri Simsa | 6ac9522 | 2015-02-23 16:11:49 -0800 | [diff] [blame] | 9 | "v.io/v23" |
| 10 | "v.io/v23/ipc" |
Jiri Simsa | 337af23 | 2015-02-27 14:36:46 -0800 | [diff] [blame] | 11 | "v.io/x/lib/vlog" |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 12 | |
Jiri Simsa | ffceefa | 2015-02-28 11:03:34 -0800 | [diff] [blame] | 13 | _ "v.io/x/ref/profiles/roaming" |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 14 | ) |
| 15 | |
| 16 | func main() { |
Jiri Simsa | 6ac9522 | 2015-02-23 16:11:49 -0800 | [diff] [blame] | 17 | ctx, shutdown := v23.Init() |
Suharsh Sivakumar | 19fbf99 | 2015-01-23 11:02:27 -0800 | [diff] [blame] | 18 | defer shutdown() |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 19 | |
Jiri Simsa | 6ac9522 | 2015-02-23 16:11:49 -0800 | [diff] [blame] | 20 | server, err := v23.NewServer(ctx) |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 21 | if err != nil { |
Matt Rosencrantz | 97d67a9 | 2015-01-27 21:03:12 -0800 | [diff] [blame] | 22 | vlog.Fatalf("unexpected error: %q", err) |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 23 | } |
| 24 | |
Jiri Simsa | 6ac9522 | 2015-02-23 16:11:49 -0800 | [diff] [blame] | 25 | listenSpec := v23.GetListenSpec(ctx) |
Suharsh Sivakumar | 19fbf99 | 2015-01-23 11:02:27 -0800 | [diff] [blame] | 26 | fmt.Printf("listen spec: %v\n", listenSpec) |
Cosmos Nicolaou | 1b3594d | 2015-02-01 10:05:03 -0800 | [diff] [blame] | 27 | |
| 28 | _, err = server.Listen(listenSpec) |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 29 | if err != nil { |
Matt Rosencrantz | 97d67a9 | 2015-01-27 21:03:12 -0800 | [diff] [blame] | 30 | vlog.Fatalf("unexpected error: %q", err) |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 31 | } |
Cosmos Nicolaou | 1b3594d | 2015-02-01 10:05:03 -0800 | [diff] [blame] | 32 | err = server.Serve("roamer", &dummy{}, nil) |
| 33 | if err != nil { |
| 34 | log.Fatalf("unexpected error: %q", err) |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 35 | } |
Cosmos Nicolaou | 1b3594d | 2015-02-01 10:05:03 -0800 | [diff] [blame] | 36 | watcher := make(chan ipc.NetworkChange, 1) |
| 37 | server.WatchNetwork(watcher) |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 38 | |
Cosmos Nicolaou | 1b3594d | 2015-02-01 10:05:03 -0800 | [diff] [blame] | 39 | 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 Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 52 | } |
| 53 | |
Cosmos Nicolaou | 1b3594d | 2015-02-01 10:05:03 -0800 | [diff] [blame] | 54 | type dummy struct{} |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 55 | |
Matt Rosencrantz | 5c7ed21 | 2015-02-27 22:42:35 -0800 | [diff] [blame] | 56 | func (d *dummy) Echo(call ipc.ServerCall, arg string) (string, error) { |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 57 | return arg, nil |
| 58 | } |