Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 1 | package profiles |
| 2 | |
| 3 | import ( |
Jiri Simsa | 519c507 | 2014-09-17 21:37:57 -0700 | [diff] [blame] | 4 | "veyron.io/veyron/veyron2" |
| 5 | "veyron.io/veyron/veyron2/config" |
Cosmos Nicolaou | 767b62d | 2014-09-19 13:58:40 -0700 | [diff] [blame] | 6 | "veyron.io/veyron/veyron2/ipc" |
Cosmos Nicolaou | f889c73 | 2014-10-16 20:46:54 -0700 | [diff] [blame] | 7 | "veyron.io/veyron/veyron2/rt" |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 8 | |
Cosmos Nicolaou | 39e3ae5 | 2014-11-14 13:30:01 -0800 | [diff] [blame] | 9 | "veyron.io/veyron/veyron/lib/appcycle" |
Cosmos Nicolaou | 87c0a55 | 2014-12-02 23:05:49 -0800 | [diff] [blame] | 10 | _ "veyron.io/veyron/veyron/lib/tcp" |
| 11 | _ "veyron.io/veyron/veyron/lib/websocket" |
Jiri Simsa | 519c507 | 2014-09-17 21:37:57 -0700 | [diff] [blame] | 12 | "veyron.io/veyron/veyron/profiles/internal" |
Cosmos Nicolaou | 87c0a55 | 2014-12-02 23:05:49 -0800 | [diff] [blame] | 13 | "veyron.io/veyron/veyron/profiles/internal/platform" |
Cosmos Nicolaou | f889c73 | 2014-10-16 20:46:54 -0700 | [diff] [blame] | 14 | _ "veyron.io/veyron/veyron/runtimes/google/rt" |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 15 | ) |
| 16 | |
Cosmos Nicolaou | d6c3c9c | 2014-09-30 15:42:53 -0700 | [diff] [blame] | 17 | // LocalListenSpec is a ListenSpec for 127.0.0.1. |
Cosmos Nicolaou | f8d4c2b | 2014-10-23 22:36:38 -0700 | [diff] [blame] | 18 | var LocalListenSpec = ipc.ListenSpec{ |
Cosmos Nicolaou | 767b62d | 2014-09-19 13:58:40 -0700 | [diff] [blame] | 19 | Protocol: "tcp", |
| 20 | Address: "127.0.0.1:0", |
| 21 | AddressChooser: internal.IPAddressChooser, |
| 22 | } |
| 23 | |
Cosmos Nicolaou | 39e3ae5 | 2014-11-14 13:30:01 -0800 | [diff] [blame] | 24 | type generic struct{ ac *appcycle.AppCycle } |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 25 | |
Benjamin Prosnitz | fdfbf7b | 2014-10-08 09:47:21 -0700 | [diff] [blame] | 26 | var _ veyron2.Profile = (*generic)(nil) |
| 27 | |
Cosmos Nicolaou | f889c73 | 2014-10-16 20:46:54 -0700 | [diff] [blame] | 28 | func init() { |
| 29 | rt.RegisterProfile(New()) |
| 30 | } |
| 31 | |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 32 | // New returns a new instance of a very generic Profile. It can be used |
| 33 | // as a default by Runtime implementations, in unit tests etc. |
| 34 | func New() veyron2.Profile { |
| 35 | return &generic{} |
| 36 | } |
| 37 | |
| 38 | func (*generic) Name() string { |
| 39 | return "generic" |
| 40 | } |
| 41 | |
Cosmos Nicolaou | 4e8da64 | 2014-11-13 08:32:05 -0800 | [diff] [blame] | 42 | func (*generic) Runtime() (string, []veyron2.ROpt) { |
| 43 | return veyron2.GoogleRuntimeName, nil |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 44 | } |
| 45 | |
| 46 | func (*generic) Platform() *veyron2.Platform { |
Cosmos Nicolaou | 87c0a55 | 2014-12-02 23:05:49 -0800 | [diff] [blame] | 47 | pstr, _ := platform.Platform() |
| 48 | return pstr |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 49 | } |
| 50 | |
Cosmos Nicolaou | 39e3ae5 | 2014-11-14 13:30:01 -0800 | [diff] [blame] | 51 | func (g *generic) Init(rt veyron2.Runtime, _ *config.Publisher) (veyron2.AppCycle, error) { |
James Ring | 0f5986f | 2014-12-08 14:26:46 -0800 | [diff] [blame] | 52 | rt.Logger().VI(1).Infof("%s", g) |
Bogdan Caprita | 3e8f964 | 2014-12-05 14:29:40 -0800 | [diff] [blame] | 53 | g.ac = appcycle.New() |
Cosmos Nicolaou | 39e3ae5 | 2014-11-14 13:30:01 -0800 | [diff] [blame] | 54 | return g.ac, nil |
| 55 | } |
| 56 | |
| 57 | func (g *generic) Cleanup() { |
| 58 | g.ac.Shutdown() |
Cosmos Nicolaou | ef323db | 2014-09-07 22:13:28 -0700 | [diff] [blame] | 59 | } |
| 60 | |
| 61 | func (g *generic) String() string { |
| 62 | return "generic profile on " + g.Platform().String() |
| 63 | } |