Index: runtime/vm/service/vmservice.dart |
diff --git a/runtime/vm/service/vmservice.dart b/runtime/vm/service/vmservice.dart |
index 2be15b627b12c1db5503c292dd6737673fa35102..4c12cdb1105e398fcef1fec59f6054aae7679f61 100644 |
--- a/runtime/vm/service/vmservice.dart |
+++ b/runtime/vm/service/vmservice.dart |
@@ -21,6 +21,36 @@ final RawReceivePort scriptLoadPort = new RawReceivePort(); |
typedef ShutdownCallback(); |
+// These must be kept in sync with the declarations in vm/json_stream.h. |
+const kInvalidParams = -32602; |
+const kInternalError = -32603; |
+const kStreamAlreadySubscribed = 103; |
+const kStreamNotSubscribed = 104; |
+ |
+var _errorMessages = { |
+ kInvalidParams: 'Invalid params', |
+ kInternalError: 'Internal error', |
+ kStreamAlreadySubscribed: 'Stream already subscribed', |
+ kStreamNotSubscribed: 'Stream not subscribed', |
+}; |
+ |
+String encodeRpcError(Message message, int code, {String details}) { |
+ var response = { |
+ 'jsonrpc': '2.0', |
+ 'id' : message.serial, |
+ 'error' : { |
+ 'code': code, |
+ 'message': _errorMessages[code], |
+ }, |
+ }; |
+ if (details != null) { |
+ response['error']['data'] = { |
+ 'details': details, |
+ }; |
+ } |
+ return JSON.encode(response); |
+} |
+ |
class VMService extends MessageRouter { |
static VMService _instance; |
@@ -143,34 +173,6 @@ class VMService extends MessageRouter { |
message.setResponse(JSON.encode(result)); |
} |
- // These must be kept in sync with the declarations in vm/json_stream.h. |
- static const _kInvalidParams = -32602; |
- static const _kStreamAlreadySubscribed = 103; |
- static const _kStreamNotSubscribed = 104; |
- |
- var _errorMessages = { |
- _kInvalidParams: 'Invalid params"', |
- _kStreamAlreadySubscribed: 'Stream already subscribed', |
- _kStreamNotSubscribed: 'Stream not subscribed', |
- }; |
- |
- String _encodeError(Message message, int code, {String details}) { |
- var response = { |
- 'jsonrpc': '2.0', |
- 'id' : message.serial, |
- 'error' : { |
- 'code': code, |
- 'message': _errorMessages[code], |
- }, |
- }; |
- if (details != null) { |
- response['error']['data'] = { |
- 'details': details, |
- }; |
- } |
- return JSON.encode(response); |
- } |
- |
String _encodeResult(Message message, Map result) { |
var response = { |
'jsonrpc': '2.0', |
@@ -194,12 +196,12 @@ class VMService extends MessageRouter { |
var streamId = message.params['streamId']; |
if (client.streams.contains(streamId)) { |
- return _encodeError(message, _kStreamAlreadySubscribed); |
+ return encodeRpcError(message, kStreamAlreadySubscribed); |
} |
if (!_isAnyClientSubscribed(streamId)) { |
if (!_vmListenStream(streamId)) { |
- return _encodeError( |
- message, _kInvalidParams, |
+ return encodeRpcError( |
+ message, kInvalidParams, |
details:"streamListen: invalid 'streamId' parameter: ${streamId}"); |
} |
} |
@@ -214,7 +216,7 @@ class VMService extends MessageRouter { |
var streamId = message.params['streamId']; |
if (!client.streams.contains(streamId)) { |
- return _encodeError(message, _kStreamNotSubscribed); |
+ return encodeRpcError(message, kStreamNotSubscribed); |
} |
client.streams.remove(streamId); |
if (!_isAnyClientSubscribed(streamId)) { |