diff options
Diffstat (limited to 'src/sbus/codegen/templates/arguments.c.tpl')
-rw-r--r-- | src/sbus/codegen/templates/arguments.c.tpl | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/sbus/codegen/templates/arguments.c.tpl b/src/sbus/codegen/templates/arguments.c.tpl new file mode 100644 index 0000000..5d28fa0 --- /dev/null +++ b/src/sbus/codegen/templates/arguments.c.tpl @@ -0,0 +1,67 @@ +<template name="file-header"> + /* + Generated by sbus code generator + + Copyright (C) 2017 Red Hat + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + + #include <errno.h> + #include <stdint.h> + #include <talloc.h> + #include <stdbool.h> + #include <dbus/dbus.h> + + #include "${sbus-path}/interface/sbus_iterator_readers.h" + #include "${sbus-path}/interface/sbus_iterator_writers.h" + #include "${header:arguments}" + +</template> + +<template name="arguments"> + errno_t _sbus_invoker_read_${signature} + (TALLOC_CTX *mem_ctx, + DBusMessageIter *iter, + struct _sbus_invoker_args_${signature} *args) + { + errno_t ret; + + <loop name="read-argument"> + ret = sbus_iterator_read_${arg-signature}(${talloc-context}iter, &args->arg${index}); + if (ret != EOK) { + return ret; + } + + </loop> + return EOK; + } + + errno_t _sbus_invoker_write_${signature} + (DBusMessageIter *iter, + struct _sbus_invoker_args_${signature} *args) + { + errno_t ret; + + <loop name="write-argument"> + ret = sbus_iterator_write_${arg-signature}(iter, args->arg${index}); + if (ret != EOK) { + return ret; + } + + </loop> + return EOK; + } + +</template> |