blob: 9560c291648aa4ecf2ee3086dc5eaca4deee1026 [file] [log] [blame]
{% from "module_macros.tmpl" import enum_values %}
{% from "module_macros.tmpl" import struct_descriptor %}
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import mojo.bindings.descriptor as _descriptor
import mojo.bindings.reflection as _reflection
{% if imports %}
{% for import in imports %}
import {{import.python_module}}
{% endfor %}
{% endif %}
{#--- Constants #}
{% if module.constants %}
{% for constant in module.constants %}
{{constant|name}} = {{constant.value|expression_to_text}}
{% endfor %}
{% endif %}
{% for enum in enums %}
class {{enum|name}}(object):
__metaclass__ = _reflection.MojoEnumType
VALUES = {{enum_values(enum)|indent(2)}}
{% endfor %}
{% for struct in structs %}
class {{struct|name}}(object):
__metaclass__ = _reflection.MojoStructType
DESCRIPTOR = {{struct_descriptor(struct)|indent(2)}}
{% endfor %}
{% for interface in interfaces %}
class {{interface|name}}(object):
__metaclass__ = _reflection.MojoInterfaceType
DESCRIPTOR = {
{% if interface.client %}
'client': lambda: {{interface.qualified_client|fully_qualified_name}},
{% endif %}
'methods': [
{% for method in interface.methods %}
{
'name': '{{method|name}}',
'ordinal': {{method.ordinal}},
{% set request_struct = method|struct_from_method %}
'parameters': {{struct_descriptor(request_struct)|indent(8)}},
{% if method.response_parameters != None %}
{% set response_struct = method|response_struct_from_method %}
'responses': {{struct_descriptor(response_struct)|indent(8)}},
{% endif %}
},
{% endfor %}
],
}
{% endfor %}