Index: pkg/analysis_server/lib/src/protocol/protocol_internal.dart |
diff --git a/pkg/analysis_server/lib/src/protocol/protocol_internal.dart b/pkg/analysis_server/lib/src/protocol/protocol_internal.dart |
index e2697f317e8cf3cfed37aede4a0fdba556019fe3..38e5fbac53600a898074fbb50e6a75e4073bf176 100644 |
--- a/pkg/analysis_server/lib/src/protocol/protocol_internal.dart |
+++ b/pkg/analysis_server/lib/src/protocol/protocol_internal.dart |
@@ -7,7 +7,8 @@ library analysis_server.src.protocol.protocol_internal; |
import 'dart:collection'; |
import 'dart:convert' hide JsonDecoder; |
-import 'package:analysis_server/plugin/protocol/protocol.dart'; |
+import 'package:analysis_server/protocol/protocol.dart'; |
+import 'package:analysis_server/protocol/protocol_generated.dart'; |
final Map<String, RefactoringKind> REQUEST_ID_REFACTORING_KINDS = |
new HashMap<String, RefactoringKind>(); |
@@ -244,31 +245,6 @@ abstract class HasToJson { |
} |
/** |
- * Jenkins hash function, optimized for small integers. Borrowed from |
- * sdk/lib/math/jenkins_smi_hash.dart. |
- * |
- * TODO(paulberry): Move to somewhere that can be shared with other code. |
- */ |
-class JenkinsSmiHash { |
- static int combine(int hash, int value) { |
- hash = 0x1fffffff & (hash + value); |
- hash = 0x1fffffff & (hash + ((0x0007ffff & hash) << 10)); |
- return hash ^ (hash >> 6); |
- } |
- |
- static int finish(int hash) { |
- hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3)); |
- hash = hash ^ (hash >> 11); |
- return 0x1fffffff & (hash + ((0x00003fff & hash) << 15)); |
- } |
- |
- static int hash2(a, b) => finish(combine(combine(0, a), b)); |
- |
- static int hash4(a, b, c, d) => |
- finish(combine(combine(combine(combine(0, a), b), c), d)); |
-} |
- |
-/** |
* Base class for decoding JSON objects. The derived class must implement |
* error reporting logic. |
*/ |
@@ -446,6 +422,14 @@ class RequestDecoder extends JsonDecoder { |
} |
} |
+abstract class RequestParams implements HasToJson { |
+ /** |
+ * Return a request whose parameters are taken from this object and that has |
+ * the given [id]. |
+ */ |
+ Request toRequest(String id); |
+} |
+ |
/** |
* JsonDecoder for decoding responses from the server. This is intended to be |
* used only for testing. Errors are reported using bare [Exception] objects. |
@@ -475,3 +459,14 @@ class ResponseDecoder extends JsonDecoder { |
return new Exception('Missing key $key at $jsonPath'); |
} |
} |
+ |
+/** |
+ * The result data associated with a response. |
+ */ |
+abstract class ResponseResult implements HasToJson { |
+ /** |
+ * Return a response whose result data is this object for the request with the |
+ * given [id]. |
+ */ |
+ Response toResponse(String id); |
+} |