Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / mojo / public / tools / bindings / generators / python_templates / module.py.tmpl
1 {% from "module_macros.tmpl" import enum_values %}
2 {% from "module_macros.tmpl" import struct_descriptor %}
3 # Copyright 2014 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file.
6
7 import mojo.bindings.descriptor as _descriptor
8 import mojo.bindings.reflection as _reflection
9 {% if imports %}
10
11 {% for import in imports %}
12 import {{import.python_module}}
13 {% endfor %}
14 {% endif %}
15 {#--- Constants #}
16 {% if module.constants %}
17
18 {% for constant in module.constants %}
19 {{constant|name}} = {{constant.value|expression_to_text}}
20 {% endfor %}
21 {% endif %}
22 {% for enum in enums %}
23
24 class {{enum|name}}(object):
25   __metaclass__ = _reflection.MojoEnumType
26   VALUES = {{enum_values(enum)|indent(2)}}
27 {% endfor %}
28 {% for struct in structs %}
29
30 class {{struct|name}}(object):
31   __metaclass__ = _reflection.MojoStructType
32   DESCRIPTOR = {{struct_descriptor(struct)|indent(2)}}
33 {% endfor %}
34 {% for interface in interfaces %}
35
36 class {{interface|name}}(object):
37   __metaclass__ = _reflection.MojoInterfaceType
38   DESCRIPTOR = {
39 {%  if interface.client %}
40     'client': lambda: {{interface.qualified_client|fully_qualified_name}},
41 {%  endif %}
42     'methods': [
43 {%  for method in interface.methods %}
44       {
45         'name': '{{method|name}}',
46         'ordinal': {{method.ordinal}},
47 {%    set request_struct = method|struct_from_method %}
48         'parameters': {{struct_descriptor(request_struct)|indent(8)}},
49 {%    if method.response_parameters != None %}
50 {%      set response_struct = method|response_struct_from_method %}
51         'responses': {{struct_descriptor(response_struct)|indent(8)}},
52 {%    endif %}
53       },
54 {%  endfor %}
55     ],
56   }
57 {% endfor %}