Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1290)

Unified Diff: mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart

Issue 1874553002: Dart: Fix bug in unbind() for Stubs. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart
index f3e24ef0f1eed9bd1d7334066bd608570b4cd1a6..f14216eaf6ef9176e8e008d27e62be7ce081600c 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart
@@ -317,6 +317,64 @@ class EchoServiceDelayedEchoStringResponseParams extends bindings.Struct {
}
+class _EchoServiceSwapParams extends bindings.Struct {
+ static const List<bindings.StructDataHeader> kVersions = const [
+ const bindings.StructDataHeader(8, 0)
+ ];
+
+ _EchoServiceSwapParams() : super(kVersions.last.size);
+
+ static _EchoServiceSwapParams deserialize(bindings.Message message) {
+ var decoder = new bindings.Decoder(message);
+ var result = decode(decoder);
+ if (decoder.excessHandles != null) {
+ decoder.excessHandles.forEach((h) => h.close());
+ }
+ return result;
+ }
+
+ static _EchoServiceSwapParams decode(bindings.Decoder decoder0) {
+ if (decoder0 == null) {
+ return null;
+ }
+ _EchoServiceSwapParams result = new _EchoServiceSwapParams();
+
+ var mainDataHeader = decoder0.decodeStructDataHeader();
+ if (mainDataHeader.version <= kVersions.last.version) {
+ // Scan in reverse order to optimize for more recent versions.
+ for (int i = kVersions.length - 1; i >= 0; --i) {
+ if (mainDataHeader.version >= kVersions[i].version) {
+ if (mainDataHeader.size == kVersions[i].size) {
+ // Found a match.
+ break;
+ }
+ throw new bindings.MojoCodecError(
+ 'Header size doesn\'t correspond to known version size.');
+ }
+ }
+ } else if (mainDataHeader.size < kVersions.last.size) {
+ throw new bindings.MojoCodecError(
+ 'Message newer than the last known version cannot be shorter than '
+ 'required by the last known version.');
+ }
+ return result;
+ }
+
+ void encode(bindings.Encoder encoder) {
+ encoder.getStructEncoderAtOffset(kVersions.last);
+ }
+
+ String toString() {
+ return "_EchoServiceSwapParams("")";
+ }
+
+ Map toJson() {
+ Map map = new Map();
+ return map;
+ }
+}
+
+
class _EchoServiceQuitParams extends bindings.Struct {
static const List<bindings.StructDataHeader> kVersions = const [
const bindings.StructDataHeader(8, 0)
@@ -376,7 +434,8 @@ class _EchoServiceQuitParams extends bindings.Struct {
const int _echoServiceMethodEchoStringName = 0;
const int _echoServiceMethodDelayedEchoStringName = 1;
-const int _echoServiceMethodQuitName = 2;
+const int _echoServiceMethodSwapName = 2;
+const int _echoServiceMethodQuitName = 3;
class _EchoServiceServiceDescription implements service_describer.ServiceDescription {
dynamic getTopLevelInterface([Function responseFactory]){
@@ -396,6 +455,7 @@ abstract class EchoService {
static const String serviceName = "test::EchoService";
dynamic echoString(String value,[Function responseFactory = null]);
dynamic delayedEchoString(String value,int millis,[Function responseFactory = null]);
+ void swap();
void quit();
}
@@ -497,6 +557,14 @@ class _EchoServiceProxyCalls implements EchoService {
-1,
bindings.MessageHeader.kMessageExpectsResponse);
}
+ void swap() {
+ if (!_proxyImpl.isBound) {
+ _proxyImpl.proxyError("The Proxy is closed.");
+ return;
+ }
+ var params = new _EchoServiceSwapParams();
+ _proxyImpl.sendMessage(params, _echoServiceMethodSwapName);
+ }
void quit() {
if (!_proxyImpl.isBound) {
_proxyImpl.proxyError("The Proxy is closed.");
@@ -649,6 +717,9 @@ class EchoServiceStub extends bindings.Stub {
bindings.MessageHeader.kMessageIsResponse);
}
break;
+ case _echoServiceMethodSwapName:
+ _impl.swap();
+ break;
case _echoServiceMethodQuitName:
_impl.quit();
break;
@@ -694,7 +765,7 @@ mojom_types.RuntimeTypeInfo _initRuntimeTypeInfo() {
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xXS2/UMBB2NjxCFxCPIoXHoXAKB2qO1UpIe2BPSDwEEuppsVJDg/IizlbAL+EncOTn9MixP4Eb2GQsvLP24gIbUWlHmk6d1GN/37zSmHRyCexnsPj5jrEOpEawvi71stSWi3Y0mqT71XPeHGQpd/w99nsf7G3w9WL36WT6aLI7Ug63F/25/Iwd5/n6jWGf2h8a+xOwW2BfBZ19D5ag8zVPnxCf30G+ELvge29ZcJ41nl+VOpQKKB6zgnvFQ+/Db2I4A9ODeVb325D6UuoTqXS/KjhlH1mZ0aJ6W1HRpN0ve6xpKatr5VFQ9XMqV4JmZcub1yzlgnJ5zlR0B22rTcVv74/vo/nYhLgR4HFgvA+NffXpzh4N7fH9qv2H9vgSlLfEiK/tuZYrwNtPRG2TlW/seM7B3VfFL84rjfdb4I9TyY4D5w3A+gvnvYa/m8nb2fFqWRVeXFdjRz87In7imweJY/8FqSoFD1g+4474X1sxH7pGlvVnYvRDWz/613lzE3rTXN6IuioFX+eNZ94k/2He4P6q+UpOzfvz4Scw+Mei58ZDnrMPfA+32QW+Nnrusxp3FB6vXsYOvPq7ZgHvfLvtvW5i4FWfFwcno35UPtzqsX5sfBC4o02iP+AjWMLHRalnpBZZnmfCzsfdHvur2T8GxtpVR/oD72/r6A58s9jqyBg/6/njUT8PTsD8OUS4BsfgZ7CEn/NS1Uh7NstaW74Me543h8j61onr/5dNwKjwmSOm77qIPOJv9ssfAQAA//84z+e14BAAAA==";
+ var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xYvY4TMRDenwOOu4D4lZafIlCFgjOiiiIhpSAVEgIdzVWRtWeSRbvZZb05BE/AI1BSUlLyCDzKlZR0YN+OwZnYwYlOWQXdSHMT++Kf7/M3491EXm1XIH6BiPu7WtsXvg3tW8KvCq8Yr3q9QTzO91l5lMTM8n087yOI92CuVwcvBsNng4OenHBvfj7bPH3Leq7zRjBOjg+18R2IbYiFX8ePED20vuLpE+LzF9hXz2x4320Dzgta/3Xhu8IBxXOaMafzUOPwfyJYA9ODeZb72xE+Ej4UTqa8JGke05SM8nyUMjLOM0Y+lJRk+Zv8MeFlfPKJHNKyIrQo5AqcyL9D0eIkmVSsfE1jxgkT6w55vfCeHJT9Ew/en87bFnyWvAZwrh3oV9/7fq6On1t1/HbZfO4/1DmH5nP3kJ497dxN/cquAZ8nyKoymYzMuC4ChnXxjvWn8EeBO25pXQvu24D9L+6HJXs7Fbsz41e2Lvw4H/uWOvjTczNXnXQs4y8Jl1I9oumUWfRxc838qNxaVOc9ra6a6tpp6+oO1LgZXfEin3B2pqsVddXZAF3heq34G2/NzufCl6+dBzZ1Hz1lKX3PDnHZnuNvp+G6rXjohsvlV9+CXz1PzeGfLd+N51kEvP/Rh78Z+Sb1crfBfDPx48GeTba9Aj/+An7k49d54VmSpgk38/OgwXqt159Aa9vyrh2cTt7dh2cmU95p19vZ/bZCvj3ZwPvtGOEMluArWMBXC96P9t/RwqSn3Ybvs2MUXfPK9v51AzBLvPoV1nQebTvow1vwOwXWR7gEX6GDPl5OEyNPrf9UHxLvJuvjdwAAAP//FAIeTugTAAA=";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);
« no previous file with comments | « mojo/dart/apptests/test_apps/interfaces/echo_service.mojom ('k') | mojo/public/platform/dart/dart_handle_watcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698