utils: codegen: ipc: Add deserializer() function

Add `deserializer()` in `serializer.tmpl` to have a single function
that generates all the necessary functions into the template specialization
like `serializer()`. This also avoids the duplication of some
conditional logic.

Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
This commit is contained in:
Barnabás Pőcze 2025-05-13 14:11:01 +02:00
parent 0a1539a4f1
commit d58ccabab7
3 changed files with 16 additions and 12 deletions

View file

@ -32,12 +32,7 @@ class IPADataSerializer<{{struct|name}}>
{
public:
{{- serializer.serializer(struct)}}
{%- if struct|has_fd %}
{{serializer.deserializer_fd(struct)}}
{%- else %}
{{serializer.deserializer_no_fd(struct)}}
{{serializer.deserializer_fd_simple(struct)}}
{%- endif %}
{{- serializer.deserializer(struct)}}
};
{% endfor %}

View file

@ -33,12 +33,7 @@ class IPADataSerializer<{{struct|name_full}}>
{
public:
{{- serializer.serializer(struct)}}
{%- if struct|has_fd %}
{{serializer.deserializer_fd(struct)}}
{%- else %}
{{serializer.deserializer_no_fd(struct)}}
{{serializer.deserializer_fd_simple(struct)}}
{%- endif %}
{{- serializer.deserializer(struct)}}
};
{% endfor %}

View file

@ -317,3 +317,17 @@
return ret;
}
{%- endmacro %}
{#
# \brief Deserialize a struct
#
# Generate code for IPADataSerializer specialization, for deserializing \a struct.
#}
{%- macro deserializer(struct) %}
{%- if struct|has_fd %}
{{deserializer_fd(struct)}}
{%- else %}
{{deserializer_no_fd(struct)}}
{{deserializer_fd_simple(struct)}}
{%- endif %}
{%- endmacro %}