Index: mojo/public/tools/bindings/generators/mojom_dart_generator.py |
diff --git a/mojo/public/tools/bindings/generators/mojom_dart_generator.py b/mojo/public/tools/bindings/generators/mojom_dart_generator.py |
index 9fcdde8157586cdda646bb0dec4acacf2fa65ccb..893e66555a98be03140c35d7900028dca22ac88a 100644 |
--- a/mojo/public/tools/bindings/generators/mojom_dart_generator.py |
+++ b/mojo/public/tools/bindings/generators/mojom_dart_generator.py |
@@ -51,15 +51,15 @@ _kind_to_dart_decl_type = { |
mojom.UINT32: "int", |
mojom.FLOAT: "double", |
mojom.HANDLE: "core.MojoHandle", |
- mojom.DCPIPE: "core.MojoHandle", |
- mojom.DPPIPE: "core.MojoHandle", |
- mojom.MSGPIPE: "core.MojoHandle", |
- mojom.SHAREDBUFFER: "core.MojoHandle", |
+ mojom.DCPIPE: "core.MojoDataPipeConsumer", |
+ mojom.DPPIPE: "core.MojoDataPipeProducer", |
+ mojom.MSGPIPE: "core.MojoMessagePipeEndpoint", |
+ mojom.SHAREDBUFFER: "core.MojoSharedBuffer", |
mojom.NULLABLE_HANDLE: "core.MojoHandle", |
- mojom.NULLABLE_DCPIPE: "core.MojoHandle", |
- mojom.NULLABLE_DPPIPE: "core.MojoHandle", |
- mojom.NULLABLE_MSGPIPE: "core.MojoHandle", |
- mojom.NULLABLE_SHAREDBUFFER: "core.MojoHandle", |
+ mojom.NULLABLE_DCPIPE: "core.MojoDataPipeConsumer", |
+ mojom.NULLABLE_DPPIPE: "core.MojoDataPipeProducer", |
+ mojom.NULLABLE_MSGPIPE: "core.MojoMessagePipeEndpoint", |
+ mojom.NULLABLE_SHAREDBUFFER: "core.MojoSharedBuffer", |
mojom.INT64: "int", |
mojom.UINT64: "int", |
mojom.DOUBLE: "double", |
@@ -78,14 +78,14 @@ _spec_to_decode_method = { |
mojom.INT32.spec: 'decodeInt32', |
mojom.INT64.spec: 'decodeInt64', |
mojom.INT8.spec: 'decodeInt8', |
- mojom.MSGPIPE.spec: 'decodeHandle', |
- mojom.NULLABLE_DCPIPE.spec: 'decodeHandle', |
- mojom.NULLABLE_DPPIPE.spec: 'decodeHandle', |
+ mojom.MSGPIPE.spec: 'decodeMessagePipeHandle', |
+ mojom.NULLABLE_DCPIPE.spec: 'decodeConsumerHandle', |
+ mojom.NULLABLE_DPPIPE.spec: 'decodeProducerHandle', |
mojom.NULLABLE_HANDLE.spec: 'decodeHandle', |
- mojom.NULLABLE_MSGPIPE.spec: 'decodeHandle', |
- mojom.NULLABLE_SHAREDBUFFER.spec: 'decodeHandle', |
+ mojom.NULLABLE_MSGPIPE.spec: 'decodeMessagePipeHandle', |
+ mojom.NULLABLE_SHAREDBUFFER.spec: 'decodeSharedBufferHandle', |
mojom.NULLABLE_STRING.spec: 'decodeString', |
- mojom.SHAREDBUFFER.spec: 'decodeHandle', |
+ mojom.SHAREDBUFFER.spec: 'decodeSharedBufferHandle', |
mojom.STRING.spec: 'decodeString', |
mojom.UINT16.spec: 'decodeUint16', |
mojom.UINT32.spec: 'decodeUint32', |
@@ -104,14 +104,14 @@ _spec_to_encode_method = { |
mojom.INT32.spec: 'encodeInt32', |
mojom.INT64.spec: 'encodeInt64', |
mojom.INT8.spec: 'encodeInt8', |
- mojom.MSGPIPE.spec: 'encodeHandle', |
- mojom.NULLABLE_DCPIPE.spec: 'encodeHandle', |
- mojom.NULLABLE_DPPIPE.spec: 'encodeHandle', |
+ mojom.MSGPIPE.spec: 'encodeMessagePipeHandle', |
+ mojom.NULLABLE_DCPIPE.spec: 'encodeConsumerHandle', |
+ mojom.NULLABLE_DPPIPE.spec: 'encodeProducerHandle', |
mojom.NULLABLE_HANDLE.spec: 'encodeHandle', |
- mojom.NULLABLE_MSGPIPE.spec: 'encodeHandle', |
- mojom.NULLABLE_SHAREDBUFFER.spec: 'encodeHandle', |
+ mojom.NULLABLE_MSGPIPE.spec: 'encodeMessagePipeHandle', |
+ mojom.NULLABLE_SHAREDBUFFER.spec: 'encodeSharedBufferHandle', |
mojom.NULLABLE_STRING.spec: 'encodeString', |
- mojom.SHAREDBUFFER.spec: 'encodeHandle', |
+ mojom.SHAREDBUFFER.spec: 'encodeSharedBufferHandle', |
mojom.STRING.spec: 'encodeString', |
mojom.UINT16.spec: 'encodeUint16', |
mojom.UINT32.spec: 'encodeUint32', |
@@ -140,7 +140,7 @@ def DartDefaultValue(field): |
return "null" |
if mojom.IsInterfaceKind(field.kind) or \ |
mojom.IsInterfaceRequestKind(field.kind): |
- return _kind_to_dart_default_value[mojom.MSGPIPE] |
+ return "null" |
if mojom.IsEnumKind(field.kind): |
return "0" |
@@ -158,7 +158,7 @@ def DartDeclType(kind): |
return "Map<"+ key_type + ", " + value_type + ">" |
if mojom.IsInterfaceKind(kind) or \ |
mojom.IsInterfaceRequestKind(kind): |
- return _kind_to_dart_decl_type[mojom.MSGPIPE] |
+ return "Object" |
if mojom.IsEnumKind(kind): |
return "int" |
@@ -242,7 +242,29 @@ def GetArrayNullabilityFlags(kind): |
flags_to_set = [NOTHING_NULLABLE] |
return ' | '.join(flags_to_set) |
-def AppendEncodeDecodeParams(initial_params, kind, bit): |
+def AppendDecodeParams(initial_params, kind, bit): |
+ """ Appends standard parameters for decode calls. """ |
+ params = list(initial_params) |
+ if (kind == mojom.BOOL): |
+ params.append(str(bit)) |
+ if mojom.IsReferenceKind(kind): |
+ if mojom.IsArrayKind(kind): |
+ params.append(GetArrayNullabilityFlags(kind)) |
+ else: |
+ params.append(GetDartTrueFalse(mojom.IsNullableKind(kind))) |
+ if mojom.IsInterfaceKind(kind): |
+ params.append('%sClient.newFromEndpoint' % GetDartType(kind)) |
+ if mojom.IsArrayKind(kind) and mojom.IsInterfaceKind(kind.kind): |
+ params.append('%sClient.newFromEndpoint' % GetDartType(kind.kind)) |
+ if mojom.IsInterfaceRequestKind(kind): |
+ params.append('%sInterface.newFromEndpoint' % GetDartType(kind.kind)) |
+ if mojom.IsArrayKind(kind) and mojom.IsInterfaceRequestKind(kind.kind): |
+ params.append('%sInterface.newFromEndpoint' % GetDartType(kind.kind.kind)) |
+ if mojom.IsArrayKind(kind): |
+ params.append(GetArrayExpectedLength(kind)) |
+ return params |
+ |
+def AppendEncodeParams(initial_params, kind, bit): |
""" Appends standard parameters shared between encode and decode calls. """ |
params = list(initial_params) |
if (kind == mojom.BOOL): |
@@ -263,12 +285,12 @@ def DecodeMethod(kind, offset, bit): |
if mojom.IsEnumKind(kind): |
return _DecodeMethodName(mojom.INT32) |
if mojom.IsInterfaceRequestKind(kind): |
- return 'decodeHandle' |
+ return 'decodeInterfaceRequest' |
if mojom.IsInterfaceKind(kind): |
- return 'decodeHandle' |
+ return 'decodeServiceInterface' |
return _spec_to_decode_method[kind.spec] |
methodName = _DecodeMethodName(kind) |
- params = AppendEncodeDecodeParams([ str(offset) ], kind, bit) |
+ params = AppendDecodeParams([ str(offset) ], kind, bit) |
return '%s(%s)' % (methodName, ', '.join(params)) |
def EncodeMethod(kind, variable, offset, bit): |
@@ -280,12 +302,12 @@ def EncodeMethod(kind, variable, offset, bit): |
if mojom.IsEnumKind(kind): |
return _EncodeMethodName(mojom.INT32) |
if mojom.IsInterfaceRequestKind(kind): |
- return 'encodeHandle' |
+ return 'encodeInterfaceRequest' |
if mojom.IsInterfaceKind(kind): |
- return 'encodeHandle' |
+ return 'encodeInterface' |
return _spec_to_encode_method[kind.spec] |
methodName = _EncodeMethodName(kind) |
- params = AppendEncodeDecodeParams([ variable, str(offset) ], kind, bit) |
+ params = AppendEncodeParams([ variable, str(offset) ], kind, bit) |
return '%s(%s)' % (methodName, ', '.join(params)) |
def TranslateConstants(token): |