diff options
author | Lennart Poettering <lennart@poettering.net> | 2014-05-06 19:15:36 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2014-05-14 22:58:43 +0200 |
commit | 04552566fa357d3029f06b66690dc28752522e10 (patch) | |
tree | 03e9ebdcee5d7d9570b0ed2285af5a032b2fbab2 | |
parent | e30bb6b53b0ae1d1da99c52266d9dec8c6ba0ae4 (diff) |
bus: add userdata API for bus name tracker objects
-rw-r--r-- | src/libsystemd/libsystemd.sym.m4 | 2 | ||||
-rw-r--r-- | src/libsystemd/sd-bus/bus-track.c | 17 | ||||
-rw-r--r-- | src/systemd/sd-bus.h | 3 |
3 files changed, 22 insertions, 0 deletions
diff --git a/src/libsystemd/libsystemd.sym.m4 b/src/libsystemd/libsystemd.sym.m4 index d18d5767b0..14d9dcf9e9 100644 --- a/src/libsystemd/libsystemd.sym.m4 +++ b/src/libsystemd/libsystemd.sym.m4 @@ -331,6 +331,8 @@ m4_ifdef(`ENABLE_KDBUS', sd_bus_track_ref; sd_bus_track_unref; sd_bus_track_get_bus; + sd_bus_track_get_userdata; + sd_bus_track_set_userdata; sd_bus_track_add_sender; sd_bus_track_remove_sender; sd_bus_track_add_name; diff --git a/src/libsystemd/sd-bus/bus-track.c b/src/libsystemd/sd-bus/bus-track.c index e21959d01d..0f6a2eafbd 100644 --- a/src/libsystemd/sd-bus/bus-track.c +++ b/src/libsystemd/sd-bus/bus-track.c @@ -312,3 +312,20 @@ void bus_track_dispatch(sd_bus_track *track) { sd_bus_track_unref(track); } + +_public_ void *sd_bus_track_get_userdata(sd_bus_track *track) { + assert_return(track, NULL); + + return track->userdata; +} + +_public_ void *sd_bus_track_set_userdata(sd_bus_track *track, void *userdata) { + void *ret; + + assert_return(track, NULL); + + ret = track->userdata; + track->userdata = userdata; + + return ret; +} diff --git a/src/systemd/sd-bus.h b/src/systemd/sd-bus.h index ff2333fb4a..c6787ca809 100644 --- a/src/systemd/sd-bus.h +++ b/src/systemd/sd-bus.h @@ -358,7 +358,10 @@ int sd_bus_path_decode(const char *path, const char *prefix, char **ret_external int sd_bus_track_new(sd_bus *bus, sd_bus_track **track, sd_bus_track_handler_t handler, void *userdata); sd_bus_track* sd_bus_track_ref(sd_bus_track *track); sd_bus_track* sd_bus_track_unref(sd_bus_track *track); + sd_bus* sd_bus_track_get_bus(sd_bus_track *track); +void *sd_bus_track_get_userdata(sd_bus_track *track); +void *sd_bus_track_set_userdata(sd_bus_track *track, void *userdata); int sd_bus_track_add_sender(sd_bus_track *track, sd_bus_message *m); int sd_bus_track_remove_sender(sd_bus_track *track, sd_bus_message *m); |