/*
    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/>.
*/

#ifndef _SBUS_DBUS_INVOKERS_H_
#define _SBUS_DBUS_INVOKERS_H_

#include <talloc.h>
#include <tevent.h>
#include <dbus/dbus.h>

#include "sbus/sbus_interface_declarations.h"
#include "sbus/sbus_request.h"

#define _sbus_dbus_declare_invoker(input, output)                               \
    struct tevent_req *                                                   \
    _sbus_dbus_invoke_in_ ## input ## _out_ ## output ## _send                 \
        (TALLOC_CTX *mem_ctx,                                             \
         struct tevent_context *ev,                                       \
         struct sbus_request *sbus_req,                                   \
         sbus_invoker_keygen keygen,                                      \
         const struct sbus_handler *handler,                              \
         DBusMessageIter *read_iterator,                                  \
         DBusMessageIter *write_iterator,                                 \
         const char **_key)

_sbus_dbus_declare_invoker(, as);
_sbus_dbus_declare_invoker(, s);
_sbus_dbus_declare_invoker(raw, );
_sbus_dbus_declare_invoker(s, );
_sbus_dbus_declare_invoker(s, as);
_sbus_dbus_declare_invoker(s, b);
_sbus_dbus_declare_invoker(s, raw);
_sbus_dbus_declare_invoker(s, s);
_sbus_dbus_declare_invoker(s, u);
_sbus_dbus_declare_invoker(ss, raw);
_sbus_dbus_declare_invoker(sss, );
_sbus_dbus_declare_invoker(su, u);

#endif /* _SBUS_DBUS_INVOKERS_H_ */
