Add templates to mojo to generate code for the IPC mechanism. These templates generate: - module header - module serializer - IPA proxy cpp, header, and worker Given an input data definition mojom file for a pipeline. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Acked-by: Jacopo Mondi <jacopo@jmondi.org> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
53 lines
1.2 KiB
Cheetah
53 lines
1.2 KiB
Cheetah
{#-
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
# Copyright (C) 2020, Google Inc.
|
|
-#}
|
|
|
|
{#
|
|
# \brief Generate enum definition
|
|
#
|
|
# \param enum Enum object whose definition is to be generated
|
|
#}
|
|
{%- macro define_enum(enum) -%}
|
|
enum {{enum.mojom_name}} {
|
|
{%- for field in enum.fields %}
|
|
{{field.mojom_name}} = {{field.numeric_value}},
|
|
{%- endfor %}
|
|
};
|
|
{%- endmacro -%}
|
|
|
|
{#
|
|
# \brief Generate struct definition
|
|
#
|
|
# \param struct Struct object whose definition is to be generated
|
|
#}
|
|
{%- macro define_struct(struct) -%}
|
|
struct {{struct.mojom_name}}
|
|
{
|
|
public:
|
|
{{struct.mojom_name}}() {%- if struct|has_default_fields %}
|
|
:{% endif %}
|
|
{%- for field in struct.fields|with_default_values -%}
|
|
{{" " if loop.first}}{{field.mojom_name}}({{field|default_value}}){{", " if not loop.last}}
|
|
{%- endfor %}
|
|
{
|
|
}
|
|
|
|
{{struct.mojom_name}}(
|
|
{%- for field in struct.fields -%}
|
|
{{"const " if not field|is_pod}}{{field|name}} {{"&" if not field|is_pod}}_{{field.mojom_name}}{{", " if not loop.last}}
|
|
{%- endfor -%}
|
|
)
|
|
:
|
|
{%- for field in struct.fields -%}
|
|
{{" " if loop.first}}{{field.mojom_name}}(_{{field.mojom_name}}){{", " if not loop.last}}
|
|
{%- endfor %}
|
|
{
|
|
}
|
|
{% for field in struct.fields %}
|
|
{{field|name}} {{field.mojom_name}};
|
|
{%- endfor %}
|
|
};
|
|
{%- endmacro -%}
|
|
|
|
|