sd_bus_slot_ref

systemd
sd_bus_slot_ref 3
sd_bus_slot_ref sd_bus_slot_unref sd_bus_slot_unrefp sd_bus_slot_get_bus Create and destroy references to a bus slot object

    #include <systemd/sd-bus.h>

sd_bus_slot *`sd_bus_slot_ref` sd_bus_slot *slot sd_bus_slot *`sd_bus_slot_unref` sd_bus_slot *slot void `sd_bus_slot_unrefp` sd_bus_slot **slotp sd_bus *`sd_bus_slot_get_bus` sd_bus_slot *m

## Description

`sd_bus_slot_ref()` increases the reference counter of slot by one.

`sd_bus_slot_unref()` decreases the reference counter of slot by one. Once the reference count has dropped to zero, slot object is destroyed and cannot be used anymore, so further calls to `sd_bus_slot_ref()` or `sd_bus_slot_unref()` are illegal.

`sd_bus_slot_unrefp()` is similar to `sd_bus_slot_unref()` but takes a pointer to a pointer to an sd_bus_slot object. This call is useful in conjunction with GCC's and LLVM's Clean-up Variable Attribute. See sd_bus_new 3 for an example how to use the cleanup attribute.

`sd_bus_slot_ref()` and `sd_bus_slot_unref()` execute no operation if the passed in bus object address is `NULL`. `sd_bus_slot_unrefp()` will first dereference its argument, which must not be `NULL`, and will execute no operation if that is `NULL`.

`sd_bus_slot_get_bus()` returns the bus object that message slot is attached to.

## Return Value

`sd_bus_slot_ref()` always returns the argument.

`sd_bus_slot_unref()` always returns `NULL`.

`sd_bus_slot_get_bus()` always returns the bus object.

## See Also

systemd 1, sd-bus 3, sd_bus_new 3, sd_bus_message_new 3, sd_bus_slot_new_signal 3, sd_bus_call_method_async 3