Suharsh Sivakumar | 628a8ee | 2015-01-14 11:38:56 -0800 | [diff] [blame] | 1 | package profiles |
| 2 | |
| 3 | import ( |
Suharsh Sivakumar | d68949c | 2015-01-26 10:32:23 -0800 | [diff] [blame] | 4 | "flag" |
| 5 | |
Suharsh Sivakumar | 628a8ee | 2015-01-14 11:38:56 -0800 | [diff] [blame] | 6 | "v.io/core/veyron2" |
| 7 | "v.io/core/veyron2/context" |
Suharsh Sivakumar | d5049b7 | 2015-01-21 14:11:35 -0800 | [diff] [blame] | 8 | "v.io/core/veyron2/ipc" |
Nicolas LaCasse | 0a22b45 | 2015-01-22 09:57:15 -0800 | [diff] [blame] | 9 | "v.io/core/veyron2/ipc/stream" |
Suharsh Sivakumar | d68949c | 2015-01-26 10:32:23 -0800 | [diff] [blame] | 10 | "v.io/core/veyron2/vlog" |
Suharsh Sivakumar | 628a8ee | 2015-01-14 11:38:56 -0800 | [diff] [blame] | 11 | |
| 12 | "v.io/core/veyron/lib/appcycle" |
Suharsh Sivakumar | d68949c | 2015-01-26 10:32:23 -0800 | [diff] [blame] | 13 | "v.io/core/veyron/lib/flags" |
Nicolas LaCasse | 0a22b45 | 2015-01-22 09:57:15 -0800 | [diff] [blame] | 14 | "v.io/core/veyron/lib/websocket" |
Suharsh Sivakumar | d5049b7 | 2015-01-21 14:11:35 -0800 | [diff] [blame] | 15 | "v.io/core/veyron/profiles/internal" |
Suharsh Sivakumar | 628a8ee | 2015-01-14 11:38:56 -0800 | [diff] [blame] | 16 | _ "v.io/core/veyron/runtimes/google/ipc/protocols/tcp" |
| 17 | _ "v.io/core/veyron/runtimes/google/ipc/protocols/ws" |
| 18 | _ "v.io/core/veyron/runtimes/google/ipc/protocols/wsh" |
| 19 | grt "v.io/core/veyron/runtimes/google/rt" |
| 20 | ) |
| 21 | |
Suharsh Sivakumar | d68949c | 2015-01-26 10:32:23 -0800 | [diff] [blame] | 22 | var commonFlags *flags.Flags |
| 23 | |
Suharsh Sivakumar | 628a8ee | 2015-01-14 11:38:56 -0800 | [diff] [blame] | 24 | func init() { |
| 25 | veyron2.RegisterProfileInit(Init) |
Nicolas LaCasse | 0a22b45 | 2015-01-22 09:57:15 -0800 | [diff] [blame] | 26 | stream.RegisterUnknownProtocol("wsh", websocket.HybridDial, websocket.HybridListener) |
Suharsh Sivakumar | d68949c | 2015-01-26 10:32:23 -0800 | [diff] [blame] | 27 | commonFlags = flags.CreateAndRegister(flag.CommandLine, flags.Runtime) |
Suharsh Sivakumar | 628a8ee | 2015-01-14 11:38:56 -0800 | [diff] [blame] | 28 | } |
| 29 | |
Matt Rosencrantz | ba470a5 | 2015-01-26 13:36:13 -0800 | [diff] [blame] | 30 | func Init(ctx *context.T) (veyron2.Runtime, *context.T, veyron2.Shutdown, error) { |
Suharsh Sivakumar | d68949c | 2015-01-26 10:32:23 -0800 | [diff] [blame] | 31 | if err := internal.ParseFlags(commonFlags); err != nil { |
| 32 | return nil, nil, nil, err |
| 33 | } |
| 34 | |
Suharsh Sivakumar | d5049b7 | 2015-01-21 14:11:35 -0800 | [diff] [blame] | 35 | ac := appcycle.New() |
| 36 | |
| 37 | runtime, ctx, shutdown, err := grt.Init(ctx, |
| 38 | ac, |
| 39 | nil, |
| 40 | &ipc.ListenSpec{ |
| 41 | Addrs: ipc.ListenAddrs{{"tcp", "127.0.0.1:0"}}, |
| 42 | AddressChooser: internal.IPAddressChooser, |
| 43 | }, |
Suharsh Sivakumar | d68949c | 2015-01-26 10:32:23 -0800 | [diff] [blame] | 44 | commonFlags.RuntimeFlags(), |
Suharsh Sivakumar | d5049b7 | 2015-01-21 14:11:35 -0800 | [diff] [blame] | 45 | nil) |
Suharsh Sivakumar | 628a8ee | 2015-01-14 11:38:56 -0800 | [diff] [blame] | 46 | if err != nil { |
Matt Rosencrantz | aeed5d5 | 2015-01-14 15:18:34 -0800 | [diff] [blame] | 47 | return nil, nil, nil, err |
Suharsh Sivakumar | 628a8ee | 2015-01-14 11:38:56 -0800 | [diff] [blame] | 48 | } |
Suharsh Sivakumar | d68949c | 2015-01-26 10:32:23 -0800 | [diff] [blame] | 49 | vlog.Log.VI(1).Infof("Initializing generic profile.") |
Suharsh Sivakumar | 628a8ee | 2015-01-14 11:38:56 -0800 | [diff] [blame] | 50 | |
Matt Rosencrantz | aeed5d5 | 2015-01-14 15:18:34 -0800 | [diff] [blame] | 51 | profileShutdown := func() { |
Matt Rosencrantz | aeed5d5 | 2015-01-14 15:18:34 -0800 | [diff] [blame] | 52 | ac.Shutdown() |
Suharsh Sivakumar | d5049b7 | 2015-01-21 14:11:35 -0800 | [diff] [blame] | 53 | shutdown() |
Suharsh Sivakumar | 628a8ee | 2015-01-14 11:38:56 -0800 | [diff] [blame] | 54 | } |
Matt Rosencrantz | aeed5d5 | 2015-01-14 15:18:34 -0800 | [diff] [blame] | 55 | return runtime, ctx, profileShutdown, nil |
Suharsh Sivakumar | 628a8ee | 2015-01-14 11:38:56 -0800 | [diff] [blame] | 56 | } |