1 /* SPDX-License-Identifier: LGPL-2.1+ */
13 #include "string-util.h"
14 #include "time-util.h"
16 typedef enum BusTransport
{
19 BUS_TRANSPORT_MACHINE
,
21 _BUS_TRANSPORT_INVALID
= -1
24 int bus_async_unregister_and_exit(sd_event
*e
, sd_bus
*bus
, const char *name
);
26 typedef bool (*check_idle_t
)(void *userdata
);
28 int bus_event_loop_with_idle(sd_event
*e
, sd_bus
*bus
, const char *name
, usec_t timeout
, check_idle_t check_idle
, void *userdata
);
30 int bus_name_has_owner(sd_bus
*c
, const char *name
, sd_bus_error
*error
);
32 int bus_check_peercred(sd_bus
*c
);
34 int bus_connect_system_systemd(sd_bus
**_bus
);
35 int bus_connect_user_systemd(sd_bus
**_bus
);
37 int bus_connect_transport(BusTransport transport
, const char *host
, bool user
, sd_bus
**bus
);
38 int bus_connect_transport_systemd(BusTransport transport
, const char *host
, bool user
, sd_bus
**bus
);
40 #define bus_log_connect_error(r) \
41 log_error_errno(r, "Failed to create bus connection: %m")
43 #define bus_log_parse_error(r) \
44 log_error_errno(r, "Failed to parse bus message: %m")
46 #define bus_log_create_error(r) \
47 log_error_errno(r, "Failed to create bus message: %m")
49 int bus_path_encode_unique(sd_bus
*b
, const char *prefix
, const char *sender_id
, const char *external_id
, char **ret_path
);
50 int bus_path_decode_unique(const char *path
, const char *prefix
, char **ret_sender
, char **ret_external
);
52 int bus_track_add_name_many(sd_bus_track
*t
, char **l
);
54 int bus_open_system_watch_bind_with_description(sd_bus
**ret
, const char *description
);
55 static inline int bus_open_system_watch_bind(sd_bus
**ret
) {
56 return bus_open_system_watch_bind_with_description(ret
, NULL
);
59 int bus_reply_pair_array(sd_bus_message
*m
, char **l
);
61 extern const struct hash_ops bus_message_hash_ops
;