OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of repositories; | 5 part of repositories; |
6 | 6 |
7 class TargetChangeEvent implements M.TargetChangeEvent { | 7 class TargetChangeEvent implements M.TargetChangeEvent { |
8 final TargetRepository repository; | 8 final TargetRepository repository; |
9 final bool disconnected; | 9 final bool disconnected; |
10 TargetChangeEvent(this.repository, [this.disconnected = false]); | 10 TargetChangeEvent(this.repository, [this.disconnected = false]); |
11 } | 11 } |
12 | 12 |
13 class TargetRepository implements M.TargetRepository { | 13 class TargetRepository implements M.TargetRepository { |
14 | |
15 static const _historyKey = 'history'; | 14 static const _historyKey = 'history'; |
16 | 15 |
17 final StreamController<TargetChangeEvent> _onChange; | 16 final StreamController<TargetChangeEvent> _onChange; |
18 final Stream<TargetChangeEvent> onChange; | 17 final Stream<TargetChangeEvent> onChange; |
19 final SettingsRepository _settings = new SettingsRepository('targetManager'); | 18 final SettingsRepository _settings = new SettingsRepository('targetManager'); |
20 | 19 |
21 final List<SC.WebSocketVMTarget> _list = <SC.WebSocketVMTarget>[]; | 20 final List<SC.WebSocketVMTarget> _list = <SC.WebSocketVMTarget>[]; |
22 SC.WebSocketVMTarget current; | 21 SC.WebSocketVMTarget current; |
23 | 22 |
24 factory TargetRepository() { | 23 factory TargetRepository() { |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 | 74 |
76 /// Read settings from data store. | 75 /// Read settings from data store. |
77 void _restore() { | 76 void _restore() { |
78 _list.clear(); | 77 _list.clear(); |
79 var loaded = _settings.get(_historyKey); | 78 var loaded = _settings.get(_historyKey); |
80 if (loaded == null) { | 79 if (loaded == null) { |
81 return; | 80 return; |
82 } | 81 } |
83 _list.addAll(loaded.map((i) => new SC.WebSocketVMTarget.fromMap(i))); | 82 _list.addAll(loaded.map((i) => new SC.WebSocketVMTarget.fromMap(i))); |
84 _list.sort((SC.WebSocketVMTarget a, SC.WebSocketVMTarget b) { | 83 _list.sort((SC.WebSocketVMTarget a, SC.WebSocketVMTarget b) { |
85 return b.lastConnectionTime.compareTo(a.lastConnectionTime); | 84 return b.lastConnectionTime.compareTo(a.lastConnectionTime); |
86 }); | 85 }); |
87 } | 86 } |
88 | 87 |
89 /// After making a change, update settings. | 88 /// After making a change, update settings. |
90 void _store() { | 89 void _store() { |
91 _settings.set(_historyKey, _list); | 90 _settings.set(_historyKey, _list); |
92 } | 91 } |
93 | 92 |
94 /// Find by networkAddress. | 93 /// Find by networkAddress. |
95 SC.WebSocketVMTarget _find(String networkAddress) { | 94 SC.WebSocketVMTarget _find(String networkAddress) { |
96 for (SC.WebSocketVMTarget item in _list) { | 95 for (SC.WebSocketVMTarget item in _list) { |
97 if (item.networkAddress == networkAddress) { | 96 if (item.networkAddress == networkAddress) { |
98 return item; | 97 return item; |
99 } | 98 } |
100 } | 99 } |
101 return null; | 100 return null; |
102 } | 101 } |
103 | 102 |
104 static String _networkAddressOfDefaultTarget() { | 103 static String _networkAddressOfDefaultTarget() { |
105 if (Utils.runningInJavaScript()) { | 104 if (Utils.runningInJavaScript()) { |
106 // We are running as JavaScript, use the same host that Observatory has | 105 // We are running as JavaScript, use the same host that Observatory has |
107 // been loaded from. | 106 // been loaded from. |
108 return 'ws://${window.location.host}/ws'; | 107 return 'ws://${window.location.host}/ws'; |
109 } else { | 108 } else { |
110 // Otherwise, assume we are running from Dart Editor and want to connect | 109 // Otherwise, assume we are running from Dart Editor and want to connect |
111 // to the default host. | 110 // to the default host. |
112 return 'ws://localhost:8181/ws'; | 111 return 'ws://localhost:8181/ws'; |
113 } | 112 } |
114 } | 113 } |
115 } | 114 } |
OLD | NEW |