]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
dbus-manager: introduce property_get_{hashmap,set}_size() 8968/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 11 May 2018 09:29:39 +0000 (18:29 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 13 May 2018 03:21:17 +0000 (12:21 +0900)
src/core/dbus-manager.c

index 4d4fb32edb14b242f274e6e8a7f55d5924071494..a618ee04df97af1a9508e85a4fe89e53957eb7ad 100644 (file)
@@ -171,7 +171,7 @@ static int property_set_log_level(
         return r;
 }
 
-static int property_get_n_names(
+static int property_get_hashmap_size(
                 sd_bus *bus,
                 const char *path,
                 const char *interface,
@@ -180,34 +180,16 @@ static int property_get_n_names(
                 void *userdata,
                 sd_bus_error *error) {
 
-        Manager *m = userdata;
-
-        assert(bus);
-        assert(reply);
-        assert(m);
-
-        return sd_bus_message_append(reply, "u", (uint32_t) hashmap_size(m->units));
-}
-
-static int property_get_n_failed_units(
-                sd_bus *bus,
-                const char *path,
-                const char *interface,
-                const char *property,
-                sd_bus_message *reply,
-                void *userdata,
-                sd_bus_error *error) {
-
-        Manager *m = userdata;
+        Hashmap **h = userdata;
 
         assert(bus);
         assert(reply);
-        assert(m);
+        assert(h);
 
-        return sd_bus_message_append(reply, "u", (uint32_t) set_size(m->failed_units));
+        return sd_bus_message_append(reply, "u", (uint32_t) hashmap_size(*h));
 }
 
-static int property_get_n_jobs(
+static int property_get_set_size(
                 sd_bus *bus,
                 const char *path,
                 const char *interface,
@@ -216,13 +198,13 @@ static int property_get_n_jobs(
                 void *userdata,
                 sd_bus_error *error) {
 
-        Manager *m = userdata;
+        Set **s = userdata;
 
         assert(bus);
         assert(reply);
-        assert(m);
+        assert(s);
 
-        return sd_bus_message_append(reply, "u", (uint32_t) hashmap_size(m->jobs));
+        return sd_bus_message_append(reply, "u", (uint32_t) set_size(*s));
 }
 
 static int property_get_progress(
@@ -2433,9 +2415,9 @@ const sd_bus_vtable bus_manager_vtable[] = {
         BUS_PROPERTY_DUAL_TIMESTAMP("UnitsLoadFinishTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_UNITS_LOAD_FINISH]), SD_BUS_VTABLE_PROPERTY_CONST),
         SD_BUS_WRITABLE_PROPERTY("LogLevel", "s", property_get_log_level, property_set_log_level, 0, 0),
         SD_BUS_WRITABLE_PROPERTY("LogTarget", "s", property_get_log_target, property_set_log_target, 0, 0),
-        SD_BUS_PROPERTY("NNames", "u", property_get_n_names, 0, 0),
-        SD_BUS_PROPERTY("NFailedUnits", "u", property_get_n_failed_units, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
-        SD_BUS_PROPERTY("NJobs", "u", property_get_n_jobs, 0, 0),
+        SD_BUS_PROPERTY("NNames", "u", property_get_hashmap_size, offsetof(Manager, units), 0),
+        SD_BUS_PROPERTY("NFailedUnits", "u", property_get_set_size, offsetof(Manager, failed_units), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
+        SD_BUS_PROPERTY("NJobs", "u", property_get_hashmap_size, offsetof(Manager, jobs), 0),
         SD_BUS_PROPERTY("NInstalledJobs", "u", bus_property_get_unsigned, offsetof(Manager, n_installed_jobs), 0),
         SD_BUS_PROPERTY("NFailedJobs", "u", bus_property_get_unsigned, offsetof(Manager, n_failed_jobs), 0),
         SD_BUS_PROPERTY("Progress", "d", property_get_progress, 0, 0),