'\" t .TH "SD_BUS_SLOT_SET_DESTROY_CALLBACK" "3" "" "systemd 239" "sd_bus_slot_set_destroy_callback" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" sd_bus_slot_set_destroy_callback, sd_bus_slot_get_destroy_callback, sd_bus_track_set_destroy_callback, sd_bus_track_get_destroy_callback, sd_bus_destroy_t \- Define the callback function for resource cleanup\&. .SH "SYNOPSIS" .sp .ft B .nf #include .fi .ft .HP \w'typedef\ int\ (*sd_bus_destroy_t)('u .BI "typedef int (*sd_bus_destroy_t)(void\ *" "userdata" ");" .HP \w'int\ sd_bus_slot_set_destroy_callback('u .BI "int sd_bus_slot_set_destroy_callback(sd_bus_slot\ *" "slot" ", sd_bus_destroy_t\ " "callback" ");" .HP \w'int\ sd_bus_slot_get_destroy_callback('u .BI "int sd_bus_slot_get_destroy_callback(sd_bus_slot\ *" "slot" ", sd_bus_destroy_t\ *" "callback" ");" .HP \w'int\ sd_bus_track_set_destroy_callback('u .BI "int sd_bus_track_set_destroy_callback(sd_bus_track\ *" "track" ", sd_bus_destroy_t\ " "callback" ");" .HP \w'int\ sd_bus_track_get_destroy_callback('u .BI "int sd_bus_track_get_destroy_callback(sd_bus_track\ *" "track" ", sd_bus_destroy_t\ *" "callback" ");" .SH "DESCRIPTION" .PP \fBsd_bus_slot_set_destroy_callback()\fR sets \fIcallback\fR as the callback function to be called right before the bus slot object \fIslot\fR is deallocated\&. The \fIuserdata\fR pointer from the slot object will be passed as the \fIuserdata\fR parameter\&. This pointer can be set by an argument to the constructor functions, see \fBsd_bus_add_match\fR(3), or directly, see \fBsd_bus_slot_set_userdata\fR(3)\&. This callback function is called even if \fIuserdata\fR is \fBNULL\fR\&. Note that this callback is invoked at a time where the bus slot object itself is already invalidated, and executing operations or taking new references to the bus slot object is not permissible\&. .PP \fBsd_bus_slot_get_destroy_callback()\fR returns the current callback for \fIslot\fR in the \fIcallback\fR parameter\&. .PP \fBsd_bus_track_set_destroy_callback()\fR and \fBsd_bus_track_get_destroy_callback\fR provide equivalent functionality for the \fIuserdata\fR pointer associated with bus peer tracking objects\&. For details about bus peer tracking objects, see \fBsd_bus_track_new\fR(3)\&. .SH "RETURN VALUE" .PP On success, \fBsd_bus_slot_set_destroy_callback()\fR and \fBsd_bus_track_set_destroy_callback()\fR return 0 or a positive integer\&. On failure, they return a negative errno\-style error code\&. .PP \fBsd_bus_slot_get_destroy_callback()\fR and \fBsd_bus_track_get_destroy_callback\fR return positive if the destroy callback function is set, 0 if not\&. On failure, they return a negative errno\-style error code\&. .SH "ERRORS" .PP Returned errors may indicate the following problems: .PP \fB\-EINVAL\fR .RS 4 The \fIslot\fR or \fItrack\fR parameter is \fBNULL\fR\&. .RE .SH "NOTES" .PP These APIs are implemented as a shared library, which can be compiled and linked to with the \fBlibsystemd\fR\ \&\fBpkg-config\fR(1) file\&. .SH "SEE ALSO" .PP \fBsystemd\fR(1), \fBsd-bus\fR(3), \fBsd_bus_slot_set_floating\fR(3), \fBsd_bus_add_match\fR(3), \fBsd_bus_track_new\fR(3), \fBsd_bus_slot_set_userdata\fR(3), \fBsd_bus_track_set_userdata\fR(3)