summaryrefslogtreecommitdiffstats
path: root/mojo/public
diff options
context:
space:
mode:
authorqsr@chromium.org <qsr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-09 14:06:06 +0000
committerqsr@chromium.org <qsr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-09 14:06:06 +0000
commited874d8a04b84465b4b89973e6c27b23c194ca4b (patch)
treefd29e35671b78da2bcfde514d52568b5e5b673cf /mojo/public
parentf861bbe3f0d6e218874438280fae8f59f0ff8efc (diff)
downloadchromium_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')
-rw-r--r--mojo/public/tools/bindings/generators/cpp_templates/module.cc.tmpl4
-rw-r--r--mojo/public/tools/bindings/pylib/mojom/generate/data.py4
-rw-r--r--mojo/public/tools/bindings/pylib/mojom/generate/generator.py22
-rw-r--r--mojo/public/tools/bindings/pylib/mojom/generate/module.py5
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