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 | 9d17e4a | 2015-02-02 22:42:16 -0800 | [diff] [blame] | 27 | flags.SetDefaultProtocol("tcp") |
| 28 | flags.SetDefaultHostPort("127.0.0.1:0") |
| 29 | commonFlags = flags.CreateAndRegister(flag.CommandLine, flags.Runtime, flags.Listen) |
Suharsh Sivakumar | 628a8ee | 2015-01-14 11:38:56 -0800 | [diff] [blame] | 30 | } |
| 31 | |
Matt Rosencrantz | ba470a5 | 2015-01-26 13:36:13 -0800 | [diff] [blame] | 32 | func Init(ctx *context.T) (veyron2.Runtime, *context.T, veyron2.Shutdown, error) { |
Suharsh Sivakumar | d68949c | 2015-01-26 10:32:23 -0800 | [diff] [blame] | 33 | if err := internal.ParseFlags(commonFlags); err != nil { |
| 34 | return nil, nil, nil, err |
| 35 | } |
| 36 | |
Suharsh Sivakumar | d5049b7 | 2015-01-21 14:11:35 -0800 | [diff] [blame] | 37 | ac := appcycle.New() |
| 38 | |
Suharsh Sivakumar | 9d17e4a | 2015-02-02 22:42:16 -0800 | [diff] [blame] | 39 | lf := commonFlags.ListenFlags() |
| 40 | listenSpec := ipc.ListenSpec{ |
| 41 | Addrs: ipc.ListenAddrs(lf.Addrs), |
| 42 | AddressChooser: internal.IPAddressChooser, |
| 43 | Proxy: lf.ListenProxy, |
| 44 | } |
| 45 | |
Suharsh Sivakumar | d5049b7 | 2015-01-21 14:11:35 -0800 | [diff] [blame] | 46 | runtime, ctx, shutdown, err := grt.Init(ctx, |
| 47 | ac, |
| 48 | nil, |
Suharsh Sivakumar | 9d17e4a | 2015-02-02 22:42:16 -0800 | [diff] [blame] | 49 | &listenSpec, |
Suharsh Sivakumar | d68949c | 2015-01-26 10:32:23 -0800 | [diff] [blame] | 50 | commonFlags.RuntimeFlags(), |
Suharsh Sivakumar | d5049b7 | 2015-01-21 14:11:35 -0800 | [diff] [blame] | 51 | nil) |
Suharsh Sivakumar | 628a8ee | 2015-01-14 11:38:56 -0800 | [diff] [blame] | 52 | if err != nil { |
Matt Rosencrantz | aeed5d5 | 2015-01-14 15:18:34 -0800 | [diff] [blame] | 53 | return nil, nil, nil, err |
Suharsh Sivakumar | 628a8ee | 2015-01-14 11:38:56 -0800 | [diff] [blame] | 54 | } |
Suharsh Sivakumar | d68949c | 2015-01-26 10:32:23 -0800 | [diff] [blame] | 55 | vlog.Log.VI(1).Infof("Initializing generic profile.") |
Suharsh Sivakumar | 628a8ee | 2015-01-14 11:38:56 -0800 | [diff] [blame] | 56 | |
Matt Rosencrantz | aeed5d5 | 2015-01-14 15:18:34 -0800 | [diff] [blame] | 57 | profileShutdown := func() { |
Matt Rosencrantz | aeed5d5 | 2015-01-14 15:18:34 -0800 | [diff] [blame] | 58 | ac.Shutdown() |
Suharsh Sivakumar | d5049b7 | 2015-01-21 14:11:35 -0800 | [diff] [blame] | 59 | shutdown() |
Suharsh Sivakumar | 628a8ee | 2015-01-14 11:38:56 -0800 | [diff] [blame] | 60 | } |
Matt Rosencrantz | aeed5d5 | 2015-01-14 15:18:34 -0800 | [diff] [blame] | 61 | return runtime, ctx, profileShutdown, nil |
Suharsh Sivakumar | 628a8ee | 2015-01-14 11:38:56 -0800 | [diff] [blame] | 62 | } |