Skip to content

Commit

Permalink
appmodel: generate switch-case instead of a series of if-elif-else fo…
Browse files Browse the repository at this point in the history
…r transformations

Signed-off-by: Balazs Scheidler <balazs.scheidler@axoflow.com>
  • Loading branch information
bazsi committed Jan 19, 2025
1 parent 94f8ae4 commit 5be65da
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions modules/appmodel/app-transform-generator.c
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,7 @@ _generate_app_transform(Transformation *transformation, gpointer user_data)
return;

g_string_append_printf(self->block, "\n#Start Application %s\n", transformation->super.name);
g_string_append_printf(self->block, " if (%s == '%s') {\n", self->filterx_app_variable,
transformation->super.name);
g_string_append_printf(self->block, " case '%s':\n", transformation->super.name);
for (GList *l = transformation->transforms; l; l = l->next)
{
Transform *transform = l->data;
Expand All @@ -152,7 +151,7 @@ _generate_app_transform(Transformation *transformation, gpointer user_data)

_generate_steps(self, transform->steps);
}
g_string_append(self->block, " };\n");
g_string_append(self->block, " break;\n");
g_string_append_printf(self->block, "\n#End Application %s\n", transformation->super.name);
}

Expand All @@ -165,9 +164,11 @@ app_transform_generate_config(AppObjectGenerator *s, GlobalConfig *cfg, GString
self->block = result;
g_string_append_printf(result, "## app-transform(flavour(%s))\n"
"channel {\n"
" filterx {\n", self->flavour);
" filterx {\n"
" switch (%s) {\n", self->flavour, self->filterx_app_variable);
appmodel_iter_transformations(cfg, _generate_app_transform, self);
g_string_append(result, " };\n"
g_string_append(result," }\n"
" };\n"
"}");
self->block = NULL;
}
Expand Down

0 comments on commit 5be65da

Please sign in to comment.