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.
7 import mojo.bindings.descriptor as _descriptor
8 import mojo.bindings.reflection as _reflection
11 {% for import in imports %}
12 import {{import.python_module}}
16 {% if module.constants %}
18 {% for constant in module.constants %}
19 {{constant|name}} = {{constant.value|expression_to_text}}
22 {% for enum in enums %}
24 class {{enum|name}}(object):
25 __metaclass__ = _reflection.MojoEnumType
26 VALUES = {{enum_values(enum)|indent(2)}}
28 {% for struct in structs %}
30 class {{struct|name}}(object):
31 __metaclass__ = _reflection.MojoStructType
32 DESCRIPTOR = {{struct_descriptor(struct)|indent(2)}}
34 {% for interface in interfaces %}
36 class {{interface|name}}(object):
37 __metaclass__ = _reflection.MojoInterfaceType
39 {% if interface.client %}
40 'client': lambda: {{interface.qualified_client|fully_qualified_name}},
43 {% for method in interface.methods %}
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)}},