diff options
author | Pavel Březina <pbrezina@redhat.com> | 2014-12-17 13:26:16 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2015-02-17 15:53:39 +0100 |
commit | df4e1db5d41c903ae57fd880acc76a0ad84aa7b2 (patch) | |
tree | fa052523b587c0728638b513582694e61134f409 /src/providers | |
parent | e8058322725ba050014777ee2484f7e833ab1e3a (diff) | |
download | sssd-df4e1db5d41c903ae57fd880acc76a0ad84aa7b2.tar.gz sssd-df4e1db5d41c903ae57fd880acc76a0ad84aa7b2.tar.xz sssd-df4e1db5d41c903ae57fd880acc76a0ad84aa7b2.zip |
sbus: use hard coded getters instead of generated
Properties are single value of a small number of predefined D-Bus
types. There is no need to generate them with codegen. Actually,
the source generator for property getters is already quite mess
with branching for array, strings and object paths. Adding any
more complex type in the future (such as dictionary) would require
even more branching or creating a separate path for it.
Hard coding the getters will simplify creating new ones for more
complex types. This patch also reduces lots of code duplication
and creates a simple function for GetAll.
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
Diffstat (limited to 'src/providers')
-rw-r--r-- | src/providers/data_provider_iface_generated.c | 57 |
1 files changed, 3 insertions, 54 deletions
diff --git a/src/providers/data_provider_iface_generated.c b/src/providers/data_provider_iface_generated.c index 588137625..bdd6a4d76 100644 --- a/src/providers/data_provider_iface_generated.c +++ b/src/providers/data_provider_iface_generated.c @@ -3,6 +3,7 @@ #include "util/util.h" #include "sbus/sssd_dbus.h" #include "sbus/sssd_dbus_meta.h" +#include "sbus/sssd_dbus_invokers.h" #include "data_provider_iface_generated.h" /* methods for org.freedesktop.sssd.dataprovider */ @@ -59,39 +60,13 @@ const struct sbus_method_meta data_provider_iface__methods[] = { { NULL, } }; -/* invokes GetAll for the 'org.freedesktop.sssd.dataprovider' interface */ -static int invoke_data_provider_iface_get_all(struct sbus_request *dbus_req, void *function_ptr) -{ - DBusMessage *reply; - dbus_bool_t dbret; - DBusMessageIter iter; - DBusMessageIter iter_dict; - - reply = dbus_message_new_method_return(dbus_req->message); - if (!reply) return ENOMEM; - dbus_message_iter_init_append(reply, &iter); - dbret = dbus_message_iter_open_container( - &iter, DBUS_TYPE_ARRAY, - DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING - DBUS_TYPE_STRING_AS_STRING - DBUS_TYPE_VARIANT_AS_STRING - DBUS_DICT_ENTRY_END_CHAR_AS_STRING, - &iter_dict); - if (!dbret) return ENOMEM; - - dbret = dbus_message_iter_close_container(&iter, &iter_dict); - if (!dbret) return ENOMEM; - - return sbus_request_finish(dbus_req, reply); -} - /* interface info for org.freedesktop.sssd.dataprovider */ const struct sbus_interface_meta data_provider_iface_meta = { "org.freedesktop.sssd.dataprovider", /* name */ data_provider_iface__methods, NULL, /* no signals */ NULL, /* no properties */ - invoke_data_provider_iface_get_all, /* GetAll invoker */ + sbus_invoke_get_all, /* GetAll invoker */ }; /* methods for org.freedesktop.sssd.dataprovider_rev */ @@ -113,37 +88,11 @@ const struct sbus_method_meta data_provider_rev_iface__methods[] = { { NULL, } }; -/* invokes GetAll for the 'org.freedesktop.sssd.dataprovider_rev' interface */ -static int invoke_data_provider_rev_iface_get_all(struct sbus_request *dbus_req, void *function_ptr) -{ - DBusMessage *reply; - dbus_bool_t dbret; - DBusMessageIter iter; - DBusMessageIter iter_dict; - - reply = dbus_message_new_method_return(dbus_req->message); - if (!reply) return ENOMEM; - dbus_message_iter_init_append(reply, &iter); - dbret = dbus_message_iter_open_container( - &iter, DBUS_TYPE_ARRAY, - DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING - DBUS_TYPE_STRING_AS_STRING - DBUS_TYPE_VARIANT_AS_STRING - DBUS_DICT_ENTRY_END_CHAR_AS_STRING, - &iter_dict); - if (!dbret) return ENOMEM; - - dbret = dbus_message_iter_close_container(&iter, &iter_dict); - if (!dbret) return ENOMEM; - - return sbus_request_finish(dbus_req, reply); -} - /* interface info for org.freedesktop.sssd.dataprovider_rev */ const struct sbus_interface_meta data_provider_rev_iface_meta = { "org.freedesktop.sssd.dataprovider_rev", /* name */ data_provider_rev_iface__methods, NULL, /* no signals */ NULL, /* no properties */ - invoke_data_provider_rev_iface_get_all, /* GetAll invoker */ + sbus_invoke_get_all, /* GetAll invoker */ }; |