diff options
author | qsr@chromium.org <qsr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-09 14:06:06 +0000 |
---|---|---|
committer | qsr@chromium.org <qsr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-09 14:06:06 +0000 |
commit | ed874d8a04b84465b4b89973e6c27b23c194ca4b (patch) | |
tree | fd29e35671b78da2bcfde514d52568b5e5b673cf /mojo/public | |
parent | f861bbe3f0d6e218874438280fae8f59f0ff8efc (diff) | |
download | chromium_src-ed874d8a04b84465b4b89973e6c27b23c194ca4b.zip chromium_src-ed874d8a04b84465b4b89973e6c27b23c194ca4b.tar.gz chromium_src-ed874d8a04b84465b4b89973e6c27b23c194ca4b.tar.bz2 |
Adding reference to interface in methods.
R=viettrungluu@chromium.org
Review URL: https://codereview.chromium.org/273633004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269279 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'mojo/public')
4 files changed, 17 insertions, 18 deletions
diff --git a/mojo/public/tools/bindings/generators/cpp_templates/module.cc.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/module.cc.tmpl index 4e423aa..0108335 100644 --- a/mojo/public/tools/bindings/generators/cpp_templates/module.cc.tmpl +++ b/mojo/public/tools/bindings/generators/cpp_templates/module.cc.tmpl @@ -25,10 +25,10 @@ namespace { {%- for method in interface.methods %} {%- set method_name = "k%s_%s_Name"|format(interface.name, method.name) %} const uint32_t {{method_name}} = {{method.ordinal}}; -{% set struct = interface|struct_from_method(method) %} +{% set struct = method|struct_from_method %} {%- include "params_definition.tmpl" %} {%- if method.response_parameters != None %} -{%- set struct = interface|response_struct_from_method(method) %} +{%- set struct = method|response_struct_from_method %} {%- include "params_definition.tmpl" %} {%- endif %} {%- endfor %} diff --git a/mojo/public/tools/bindings/pylib/mojom/generate/data.py b/mojo/public/tools/bindings/pylib/mojom/generate/data.py index cbe65a7..1f2f808 100644 --- a/mojo/public/tools/bindings/pylib/mojom/generate/data.py +++ b/mojo/public/tools/bindings/pylib/mojom/generate/data.py @@ -208,9 +208,7 @@ def MethodToData(method): return data def MethodFromData(module, data, interface): - method = mojom.Method() - method.name = data['name'] - method.ordinal = data.get('ordinal') + method = mojom.Method(interface, data['name'], ordinal=data.get('ordinal')) method.default = data.get('default') method.parameters = map(lambda parameter: ParameterFromData(module, parameter, interface), data['parameters']) diff --git a/mojo/public/tools/bindings/pylib/mojom/generate/generator.py b/mojo/public/tools/bindings/pylib/mojom/generate/generator.py index f063ad8..709aa2a 100644 --- a/mojo/public/tools/bindings/pylib/mojom/generate/generator.py +++ b/mojo/public/tools/bindings/pylib/mojom/generate/generator.py @@ -10,25 +10,25 @@ import os.path import module as mojom import pack -def GetStructFromMethod(interface, method): +def GetStructFromMethod(method): """Converts a method's parameters into the fields of a struct.""" - params_class = "%s_%s_Params" % (interface.name, method.name) - struct = mojom.Struct(params_class, module=interface.module) + params_class = "%s_%s_Params" % (method.interface.name, method.name) + struct = mojom.Struct(params_class, module=method.interface.module) for param in method.parameters: struct.AddField(param.name, param.kind, param.ordinal) struct.packed = pack.PackedStruct(struct) return struct -def GetResponseStructFromMethod(interface, method): +def GetResponseStructFromMethod(method): """Converts a method's response_parameters into the fields of a struct.""" - params_class = "%s_%s_ResponseParams" % (interface.name, method.name) - struct = mojom.Struct(params_class, module=interface.module) + params_class = "%s_%s_ResponseParams" % (method.interface.name, method.name) + struct = mojom.Struct(params_class, module=method.interface.module) for param in method.response_parameters: struct.AddField(param.name, param.kind, param.ordinal) struct.packed = pack.PackedStruct(struct) return struct -def GetStructInfo(exported, struct): +def GetDataHeader(exported, struct): struct.packed = pack.PackedStruct(struct) struct.bytes = pack.GetByteLayout(struct.packed) struct.exported = exported @@ -80,13 +80,13 @@ class Generator(object): result = [] for interface in self.module.interfaces: for method in interface.methods: - result.append(GetStructFromMethod(interface, method)) + result.append(GetStructFromMethod(method)) if method.response_parameters != None: - result.append(GetResponseStructFromMethod(interface, method)) - return map(partial(GetStructInfo, False), result) + result.append(GetResponseStructFromMethod(method)) + return map(partial(GetDataHeader, False), result) def GetStructs(self): - return map(partial(GetStructInfo, True), self.module.structs) + return map(partial(GetDataHeader, True), self.module.structs) def Write(self, contents, filename): if self.output_dir is None: diff --git a/mojo/public/tools/bindings/pylib/mojom/generate/module.py b/mojo/public/tools/bindings/pylib/mojom/generate/module.py index 9d04add..4abe690 100644 --- a/mojo/public/tools/bindings/pylib/mojom/generate/module.py +++ b/mojo/public/tools/bindings/pylib/mojom/generate/module.py @@ -118,7 +118,8 @@ class Parameter(object): class Method(object): - def __init__(self, name=None, ordinal=None): + def __init__(self, interface, name, ordinal=None): + self.interface = interface self.name = name self.ordinal = ordinal self.parameters = [] @@ -150,7 +151,7 @@ class Interface(Kind): self.methods = [] def AddMethod(self, name, ordinal=None): - method = Method(name, ordinal) + method = Method(self, name, ordinal=ordinal) self.methods.append(method) return method |