1*7f664254SPatrick Williams #pragma once
2*7f664254SPatrick Williams 
3*7f664254SPatrick Williams #include <systemd/sd-bus.h>
4*7f664254SPatrick Williams 
5*7f664254SPatrick Williams #include <chrono>
6*7f664254SPatrick Williams 
7*7f664254SPatrick Williams // ABC for sdbus implementation.
8*7f664254SPatrick Williams namespace sdbusplus
9*7f664254SPatrick Williams {
10*7f664254SPatrick Williams 
11*7f664254SPatrick Williams // Defined by systemd taking uint64_t usec params
12*7f664254SPatrick Williams using SdBusDuration =
13*7f664254SPatrick Williams     std::chrono::duration<uint64_t, std::chrono::microseconds::period>;
14*7f664254SPatrick Williams 
15*7f664254SPatrick Williams // A wrapper for interfacing or testing sd-bus.  This will hold methods for
16*7f664254SPatrick Williams // buses, messages, etc.
17*7f664254SPatrick Williams class SdBusInterface
18*7f664254SPatrick Williams {
19*7f664254SPatrick Williams   public:
20*7f664254SPatrick Williams     virtual ~SdBusInterface() = default;
21*7f664254SPatrick Williams 
22*7f664254SPatrick Williams     virtual int sd_bus_add_object_manager(sd_bus* bus, sd_bus_slot** slot,
23*7f664254SPatrick Williams                                           const char* path) = 0;
24*7f664254SPatrick Williams 
25*7f664254SPatrick Williams     virtual int sd_bus_add_object_vtable(sd_bus* bus, sd_bus_slot** slot,
26*7f664254SPatrick Williams                                          const char* path,
27*7f664254SPatrick Williams                                          const char* interface,
28*7f664254SPatrick Williams                                          const sd_bus_vtable* vtable,
29*7f664254SPatrick Williams                                          void* userdata) = 0;
30*7f664254SPatrick Williams 
31*7f664254SPatrick Williams     virtual int sd_bus_attach_event(sd_bus* bus, sd_event* e, int priority) = 0;
32*7f664254SPatrick Williams 
33*7f664254SPatrick Williams     virtual int sd_bus_call(sd_bus* bus, sd_bus_message* m, uint64_t usec,
34*7f664254SPatrick Williams                             sd_bus_error* ret_error,
35*7f664254SPatrick Williams                             sd_bus_message** reply) = 0;
36*7f664254SPatrick Williams 
37*7f664254SPatrick Williams     virtual int sd_bus_detach_event(sd_bus* bus) = 0;
38*7f664254SPatrick Williams 
39*7f664254SPatrick Williams     virtual int sd_bus_emit_interfaces_added_strv(sd_bus* bus, const char* path,
40*7f664254SPatrick Williams                                                   char** interfaces) = 0;
41*7f664254SPatrick Williams     virtual int sd_bus_emit_interfaces_removed_strv(sd_bus* bus,
42*7f664254SPatrick Williams                                                     const char* path,
43*7f664254SPatrick Williams                                                     char** interfaces) = 0;
44*7f664254SPatrick Williams     virtual int sd_bus_emit_object_added(sd_bus* bus, const char* path) = 0;
45*7f664254SPatrick Williams     virtual int sd_bus_emit_object_removed(sd_bus* bus, const char* path) = 0;
46*7f664254SPatrick Williams     virtual int sd_bus_emit_properties_changed_strv(sd_bus* bus,
47*7f664254SPatrick Williams                                                     const char* path,
48*7f664254SPatrick Williams                                                     const char* interface,
49*7f664254SPatrick Williams                                                     char** names) = 0;
50*7f664254SPatrick Williams 
51*7f664254SPatrick Williams     virtual int sd_bus_error_set(sd_bus_error* e, const char* name,
52*7f664254SPatrick Williams                                  const char* message) = 0;
53*7f664254SPatrick Williams     virtual int sd_bus_error_set_const(sd_bus_error* e, const char* name,
54*7f664254SPatrick Williams                                        const char* message) = 0;
55*7f664254SPatrick Williams     virtual int sd_bus_error_get_errno(const sd_bus_error* e) = 0;
56*7f664254SPatrick Williams     virtual int sd_bus_error_set_errno(sd_bus_error* e, int error) = 0;
57*7f664254SPatrick Williams     virtual int sd_bus_error_is_set(const sd_bus_error* e) = 0;
58*7f664254SPatrick Williams     virtual void sd_bus_error_free(sd_bus_error* e) = 0;
59*7f664254SPatrick Williams 
60*7f664254SPatrick Williams     virtual sd_event* sd_bus_get_event(sd_bus* bus) = 0;
61*7f664254SPatrick Williams     virtual int sd_bus_get_fd(sd_bus* bus) = 0;
62*7f664254SPatrick Williams     virtual int sd_bus_get_unique_name(sd_bus* bus, const char** unique) = 0;
63*7f664254SPatrick Williams 
64*7f664254SPatrick Williams     virtual int sd_bus_list_names(sd_bus* bus, char*** acquired,
65*7f664254SPatrick Williams                                   char*** activatable) = 0;
66*7f664254SPatrick Williams 
67*7f664254SPatrick Williams     // https://github.com/systemd/systemd/blob/master/src/systemd/sd-bus.h
68*7f664254SPatrick Williams     virtual int sd_bus_message_append_basic(sd_bus_message* message, char type,
69*7f664254SPatrick Williams                                             const void* value) = 0;
70*7f664254SPatrick Williams 
71*7f664254SPatrick Williams     virtual int sd_bus_message_at_end(sd_bus_message* m, int complete) = 0;
72*7f664254SPatrick Williams 
73*7f664254SPatrick Williams     virtual int sd_bus_message_close_container(sd_bus_message* m) = 0;
74*7f664254SPatrick Williams 
75*7f664254SPatrick Williams     virtual int sd_bus_message_enter_container(sd_bus_message* m, char type,
76*7f664254SPatrick Williams                                                const char* contents) = 0;
77*7f664254SPatrick Williams 
78*7f664254SPatrick Williams     virtual int sd_bus_message_exit_container(sd_bus_message* m) = 0;
79*7f664254SPatrick Williams 
80*7f664254SPatrick Williams     virtual sd_bus* sd_bus_message_get_bus(sd_bus_message* m) = 0;
81*7f664254SPatrick Williams     virtual int sd_bus_message_get_type(sd_bus_message* m, uint8_t* type) = 0;
82*7f664254SPatrick Williams     virtual int sd_bus_message_get_cookie(sd_bus_message* m,
83*7f664254SPatrick Williams                                           uint64_t* cookie) = 0;
84*7f664254SPatrick Williams     virtual int sd_bus_message_get_reply_cookie(sd_bus_message* m,
85*7f664254SPatrick Williams                                                 uint64_t* cookie) = 0;
86*7f664254SPatrick Williams     virtual const char* sd_bus_message_get_destination(sd_bus_message* m) = 0;
87*7f664254SPatrick Williams     virtual const char* sd_bus_message_get_interface(sd_bus_message* m) = 0;
88*7f664254SPatrick Williams     virtual const char* sd_bus_message_get_member(sd_bus_message* m) = 0;
89*7f664254SPatrick Williams     virtual const char* sd_bus_message_get_path(sd_bus_message* m) = 0;
90*7f664254SPatrick Williams     virtual const char* sd_bus_message_get_sender(sd_bus_message* m) = 0;
91*7f664254SPatrick Williams     virtual const char* sd_bus_message_get_signature(sd_bus_message* m,
92*7f664254SPatrick Williams                                                      int complete) = 0;
93*7f664254SPatrick Williams     virtual int sd_bus_message_get_errno(sd_bus_message* m) = 0;
94*7f664254SPatrick Williams     virtual const sd_bus_error* sd_bus_message_get_error(sd_bus_message* m) = 0;
95*7f664254SPatrick Williams 
96*7f664254SPatrick Williams     virtual int sd_bus_message_is_method_call(sd_bus_message* m,
97*7f664254SPatrick Williams                                               const char* interface,
98*7f664254SPatrick Williams                                               const char* member) = 0;
99*7f664254SPatrick Williams     virtual int sd_bus_message_is_method_error(sd_bus_message* m,
100*7f664254SPatrick Williams                                                const char* name) = 0;
101*7f664254SPatrick Williams     virtual int sd_bus_message_is_signal(sd_bus_message* m,
102*7f664254SPatrick Williams                                          const char* interface,
103*7f664254SPatrick Williams                                          const char* member) = 0;
104*7f664254SPatrick Williams 
105*7f664254SPatrick Williams     virtual int sd_bus_message_new_method_call(sd_bus* bus, sd_bus_message** m,
106*7f664254SPatrick Williams                                                const char* destination,
107*7f664254SPatrick Williams                                                const char* path,
108*7f664254SPatrick Williams                                                const char* interface,
109*7f664254SPatrick Williams                                                const char* member) = 0;
110*7f664254SPatrick Williams 
111*7f664254SPatrick Williams     virtual int sd_bus_message_new_method_return(sd_bus_message* call,
112*7f664254SPatrick Williams                                                  sd_bus_message** m) = 0;
113*7f664254SPatrick Williams 
114*7f664254SPatrick Williams     virtual int sd_bus_message_new_method_errno(sd_bus_message* call,
115*7f664254SPatrick Williams                                                 sd_bus_message** m, int error,
116*7f664254SPatrick Williams                                                 const sd_bus_error* p) = 0;
117*7f664254SPatrick Williams 
118*7f664254SPatrick Williams     virtual int sd_bus_message_new_signal(sd_bus* bus, sd_bus_message** m,
119*7f664254SPatrick Williams                                           const char* path,
120*7f664254SPatrick Williams                                           const char* interface,
121*7f664254SPatrick Williams                                           const char* member) = 0;
122*7f664254SPatrick Williams 
123*7f664254SPatrick Williams     virtual int sd_bus_message_open_container(sd_bus_message* m, char type,
124*7f664254SPatrick Williams                                               const char* contents) = 0;
125*7f664254SPatrick Williams 
126*7f664254SPatrick Williams     virtual int sd_bus_message_read_basic(sd_bus_message* m, char type,
127*7f664254SPatrick Williams                                           void* p) = 0;
128*7f664254SPatrick Williams 
129*7f664254SPatrick Williams     virtual sd_bus_message* sd_bus_message_ref(sd_bus_message* m) = 0;
130*7f664254SPatrick Williams 
131*7f664254SPatrick Williams     virtual int sd_bus_message_skip(sd_bus_message* m, const char* types) = 0;
132*7f664254SPatrick Williams 
133*7f664254SPatrick Williams     virtual int sd_bus_message_verify_type(sd_bus_message* m, char type,
134*7f664254SPatrick Williams                                            const char* contents) = 0;
135*7f664254SPatrick Williams 
136*7f664254SPatrick Williams     virtual int sd_bus_process(sd_bus* bus, sd_bus_message** r) = 0;
137*7f664254SPatrick Williams 
138*7f664254SPatrick Williams     virtual sd_bus* sd_bus_ref(sd_bus* bus) = 0;
139*7f664254SPatrick Williams 
140*7f664254SPatrick Williams     virtual int sd_bus_request_name(sd_bus* bus, const char* name,
141*7f664254SPatrick Williams                                     uint64_t flags) = 0;
142*7f664254SPatrick Williams 
143*7f664254SPatrick Williams     virtual int sd_bus_send(sd_bus* bus, sd_bus_message* m,
144*7f664254SPatrick Williams                             uint64_t* cookie) = 0;
145*7f664254SPatrick Williams 
146*7f664254SPatrick Williams     virtual sd_bus* sd_bus_unref(sd_bus* bus) = 0;
147*7f664254SPatrick Williams     virtual sd_bus* sd_bus_flush_close_unref(sd_bus* bus) = 0;
148*7f664254SPatrick Williams 
149*7f664254SPatrick Williams     virtual int sd_bus_flush(sd_bus* bus) = 0;
150*7f664254SPatrick Williams     virtual void sd_bus_close(sd_bus* bus) = 0;
151*7f664254SPatrick Williams 
152*7f664254SPatrick Williams     virtual int sd_bus_wait(sd_bus* bus, uint64_t timeout_usec) = 0;
153*7f664254SPatrick Williams };
154*7f664254SPatrick Williams 
155*7f664254SPatrick Williams class SdBusImpl : public SdBusInterface
156*7f664254SPatrick Williams {
157*7f664254SPatrick Williams   public:
158*7f664254SPatrick Williams     SdBusImpl() = default;
159*7f664254SPatrick Williams     ~SdBusImpl() = default;
160*7f664254SPatrick Williams     SdBusImpl(const SdBusImpl&) = default;
161*7f664254SPatrick Williams     SdBusImpl& operator=(const SdBusImpl&) = default;
162*7f664254SPatrick Williams     SdBusImpl(SdBusImpl&&) = default;
163*7f664254SPatrick Williams     SdBusImpl& operator=(SdBusImpl&&) = default;
164*7f664254SPatrick Williams 
165*7f664254SPatrick Williams     int sd_bus_add_object_manager(sd_bus* bus, sd_bus_slot** slot,
166*7f664254SPatrick Williams                                   const char* path) override
167*7f664254SPatrick Williams     {
168*7f664254SPatrick Williams         return ::sd_bus_add_object_manager(bus, slot, path);
169*7f664254SPatrick Williams     }
170*7f664254SPatrick Williams 
171*7f664254SPatrick Williams     int sd_bus_add_object_vtable(sd_bus* bus, sd_bus_slot** slot,
172*7f664254SPatrick Williams                                  const char* path, const char* interface,
173*7f664254SPatrick Williams                                  const sd_bus_vtable* vtable,
174*7f664254SPatrick Williams                                  void* userdata) override
175*7f664254SPatrick Williams     {
176*7f664254SPatrick Williams         return ::sd_bus_add_object_vtable(bus, slot, path, interface, vtable,
177*7f664254SPatrick Williams                                           userdata);
178*7f664254SPatrick Williams     }
179*7f664254SPatrick Williams 
180*7f664254SPatrick Williams     int sd_bus_attach_event(sd_bus* bus, sd_event* e, int priority) override
181*7f664254SPatrick Williams     {
182*7f664254SPatrick Williams         return ::sd_bus_attach_event(bus, e, priority);
183*7f664254SPatrick Williams     }
184*7f664254SPatrick Williams 
185*7f664254SPatrick Williams     int sd_bus_call(sd_bus* bus, sd_bus_message* m, uint64_t usec,
186*7f664254SPatrick Williams                     sd_bus_error* ret_error, sd_bus_message** reply) override
187*7f664254SPatrick Williams     {
188*7f664254SPatrick Williams         return ::sd_bus_call(bus, m, usec, ret_error, reply);
189*7f664254SPatrick Williams     }
190*7f664254SPatrick Williams 
191*7f664254SPatrick Williams     int sd_bus_detach_event(sd_bus* bus) override
192*7f664254SPatrick Williams     {
193*7f664254SPatrick Williams         return ::sd_bus_detach_event(bus);
194*7f664254SPatrick Williams     }
195*7f664254SPatrick Williams 
196*7f664254SPatrick Williams     int sd_bus_emit_interfaces_added_strv(sd_bus* bus, const char* path,
197*7f664254SPatrick Williams                                           char** interfaces) override
198*7f664254SPatrick Williams     {
199*7f664254SPatrick Williams         return ::sd_bus_emit_interfaces_added_strv(bus, path, interfaces);
200*7f664254SPatrick Williams     }
201*7f664254SPatrick Williams 
202*7f664254SPatrick Williams     int sd_bus_emit_interfaces_removed_strv(sd_bus* bus, const char* path,
203*7f664254SPatrick Williams                                             char** interfaces) override
204*7f664254SPatrick Williams     {
205*7f664254SPatrick Williams         return ::sd_bus_emit_interfaces_removed_strv(bus, path, interfaces);
206*7f664254SPatrick Williams     }
207*7f664254SPatrick Williams 
208*7f664254SPatrick Williams     int sd_bus_emit_object_added(sd_bus* bus, const char* path) override
209*7f664254SPatrick Williams     {
210*7f664254SPatrick Williams         return ::sd_bus_emit_object_added(bus, path);
211*7f664254SPatrick Williams     }
212*7f664254SPatrick Williams 
213*7f664254SPatrick Williams     int sd_bus_emit_object_removed(sd_bus* bus, const char* path) override
214*7f664254SPatrick Williams     {
215*7f664254SPatrick Williams         return ::sd_bus_emit_object_removed(bus, path);
216*7f664254SPatrick Williams     }
217*7f664254SPatrick Williams 
218*7f664254SPatrick Williams     int sd_bus_emit_properties_changed_strv(sd_bus* bus, const char* path,
219*7f664254SPatrick Williams                                             const char* interface,
220*7f664254SPatrick Williams                                             char** names) override
221*7f664254SPatrick Williams     {
222*7f664254SPatrick Williams         return ::sd_bus_emit_properties_changed_strv(bus, path, interface,
223*7f664254SPatrick Williams                                                      names);
224*7f664254SPatrick Williams     }
225*7f664254SPatrick Williams 
226*7f664254SPatrick Williams     int sd_bus_error_set(sd_bus_error* e, const char* name,
227*7f664254SPatrick Williams                          const char* message) override
228*7f664254SPatrick Williams     {
229*7f664254SPatrick Williams         return ::sd_bus_error_set(e, name, message);
230*7f664254SPatrick Williams     }
231*7f664254SPatrick Williams 
232*7f664254SPatrick Williams     int sd_bus_error_set_const(sd_bus_error* e, const char* name,
233*7f664254SPatrick Williams                                const char* message) override
234*7f664254SPatrick Williams     {
235*7f664254SPatrick Williams         return ::sd_bus_error_set_const(e, name, message);
236*7f664254SPatrick Williams     }
237*7f664254SPatrick Williams 
238*7f664254SPatrick Williams     int sd_bus_error_get_errno(const sd_bus_error* e) override
239*7f664254SPatrick Williams     {
240*7f664254SPatrick Williams         return ::sd_bus_error_get_errno(e);
241*7f664254SPatrick Williams     }
242*7f664254SPatrick Williams 
243*7f664254SPatrick Williams     int sd_bus_error_set_errno(sd_bus_error* e, int error) override
244*7f664254SPatrick Williams     {
245*7f664254SPatrick Williams         return ::sd_bus_error_set_errno(e, error);
246*7f664254SPatrick Williams     }
247*7f664254SPatrick Williams 
248*7f664254SPatrick Williams     int sd_bus_error_is_set(const sd_bus_error* e) override
249*7f664254SPatrick Williams     {
250*7f664254SPatrick Williams         return ::sd_bus_error_is_set(e);
251*7f664254SPatrick Williams     }
252*7f664254SPatrick Williams 
253*7f664254SPatrick Williams     void sd_bus_error_free(sd_bus_error* e) override
254*7f664254SPatrick Williams     {
255*7f664254SPatrick Williams         return ::sd_bus_error_free(e);
256*7f664254SPatrick Williams     }
257*7f664254SPatrick Williams 
258*7f664254SPatrick Williams     sd_event* sd_bus_get_event(sd_bus* bus) override
259*7f664254SPatrick Williams     {
260*7f664254SPatrick Williams         return ::sd_bus_get_event(bus);
261*7f664254SPatrick Williams     }
262*7f664254SPatrick Williams 
263*7f664254SPatrick Williams     int sd_bus_get_fd(sd_bus* bus) override
264*7f664254SPatrick Williams     {
265*7f664254SPatrick Williams         return ::sd_bus_get_fd(bus);
266*7f664254SPatrick Williams     }
267*7f664254SPatrick Williams 
268*7f664254SPatrick Williams     int sd_bus_get_unique_name(sd_bus* bus, const char** unique) override
269*7f664254SPatrick Williams     {
270*7f664254SPatrick Williams         return ::sd_bus_get_unique_name(bus, unique);
271*7f664254SPatrick Williams     }
272*7f664254SPatrick Williams 
273*7f664254SPatrick Williams     int sd_bus_list_names(sd_bus* bus, char*** acquired,
274*7f664254SPatrick Williams                           char*** activatable) override
275*7f664254SPatrick Williams     {
276*7f664254SPatrick Williams         return ::sd_bus_list_names(bus, acquired, activatable);
277*7f664254SPatrick Williams     }
278*7f664254SPatrick Williams 
279*7f664254SPatrick Williams     int sd_bus_message_append_basic(sd_bus_message* message, char type,
280*7f664254SPatrick Williams                                     const void* value) override
281*7f664254SPatrick Williams     {
282*7f664254SPatrick Williams         return ::sd_bus_message_append_basic(message, type, value);
283*7f664254SPatrick Williams     }
284*7f664254SPatrick Williams 
285*7f664254SPatrick Williams     int sd_bus_message_at_end(sd_bus_message* m, int complete) override
286*7f664254SPatrick Williams     {
287*7f664254SPatrick Williams         return ::sd_bus_message_at_end(m, complete);
288*7f664254SPatrick Williams     }
289*7f664254SPatrick Williams 
290*7f664254SPatrick Williams     int sd_bus_message_close_container(sd_bus_message* m) override
291*7f664254SPatrick Williams     {
292*7f664254SPatrick Williams         return ::sd_bus_message_close_container(m);
293*7f664254SPatrick Williams     }
294*7f664254SPatrick Williams 
295*7f664254SPatrick Williams     int sd_bus_message_enter_container(sd_bus_message* m, char type,
296*7f664254SPatrick Williams                                        const char* contents) override
297*7f664254SPatrick Williams     {
298*7f664254SPatrick Williams         return ::sd_bus_message_enter_container(m, type, contents);
299*7f664254SPatrick Williams     }
300*7f664254SPatrick Williams 
301*7f664254SPatrick Williams     int sd_bus_message_exit_container(sd_bus_message* m) override
302*7f664254SPatrick Williams     {
303*7f664254SPatrick Williams         return ::sd_bus_message_exit_container(m);
304*7f664254SPatrick Williams     }
305*7f664254SPatrick Williams 
306*7f664254SPatrick Williams     sd_bus* sd_bus_message_get_bus(sd_bus_message* m) override
307*7f664254SPatrick Williams     {
308*7f664254SPatrick Williams         return ::sd_bus_message_get_bus(m);
309*7f664254SPatrick Williams     }
310*7f664254SPatrick Williams 
311*7f664254SPatrick Williams     int sd_bus_message_get_type(sd_bus_message* m, uint8_t* type) override
312*7f664254SPatrick Williams     {
313*7f664254SPatrick Williams         return ::sd_bus_message_get_type(m, type);
314*7f664254SPatrick Williams     }
315*7f664254SPatrick Williams 
316*7f664254SPatrick Williams     int sd_bus_message_get_cookie(sd_bus_message* m, uint64_t* cookie) override
317*7f664254SPatrick Williams     {
318*7f664254SPatrick Williams         return ::sd_bus_message_get_cookie(m, cookie);
319*7f664254SPatrick Williams     }
320*7f664254SPatrick Williams 
321*7f664254SPatrick Williams     int sd_bus_message_get_reply_cookie(sd_bus_message* m,
322*7f664254SPatrick Williams                                         uint64_t* cookie) override
323*7f664254SPatrick Williams     {
324*7f664254SPatrick Williams         return ::sd_bus_message_get_reply_cookie(m, cookie);
325*7f664254SPatrick Williams     }
326*7f664254SPatrick Williams 
327*7f664254SPatrick Williams     const char* sd_bus_message_get_destination(sd_bus_message* m) override
328*7f664254SPatrick Williams     {
329*7f664254SPatrick Williams         return ::sd_bus_message_get_destination(m);
330*7f664254SPatrick Williams     }
331*7f664254SPatrick Williams 
332*7f664254SPatrick Williams     const char* sd_bus_message_get_interface(sd_bus_message* m) override
333*7f664254SPatrick Williams     {
334*7f664254SPatrick Williams         return ::sd_bus_message_get_interface(m);
335*7f664254SPatrick Williams     }
336*7f664254SPatrick Williams 
337*7f664254SPatrick Williams     const char* sd_bus_message_get_member(sd_bus_message* m) override
338*7f664254SPatrick Williams     {
339*7f664254SPatrick Williams         return ::sd_bus_message_get_member(m);
340*7f664254SPatrick Williams     }
341*7f664254SPatrick Williams 
342*7f664254SPatrick Williams     const char* sd_bus_message_get_path(sd_bus_message* m) override
343*7f664254SPatrick Williams     {
344*7f664254SPatrick Williams         return ::sd_bus_message_get_path(m);
345*7f664254SPatrick Williams     }
346*7f664254SPatrick Williams 
347*7f664254SPatrick Williams     const char* sd_bus_message_get_sender(sd_bus_message* m) override
348*7f664254SPatrick Williams     {
349*7f664254SPatrick Williams         return ::sd_bus_message_get_sender(m);
350*7f664254SPatrick Williams     }
351*7f664254SPatrick Williams 
352*7f664254SPatrick Williams     const char* sd_bus_message_get_signature(sd_bus_message* m,
353*7f664254SPatrick Williams                                              int complete) override
354*7f664254SPatrick Williams     {
355*7f664254SPatrick Williams         return ::sd_bus_message_get_signature(m, complete);
356*7f664254SPatrick Williams     }
357*7f664254SPatrick Williams 
358*7f664254SPatrick Williams     int sd_bus_message_get_errno(sd_bus_message* m) override
359*7f664254SPatrick Williams     {
360*7f664254SPatrick Williams         return ::sd_bus_message_get_errno(m);
361*7f664254SPatrick Williams     }
362*7f664254SPatrick Williams 
363*7f664254SPatrick Williams     const sd_bus_error* sd_bus_message_get_error(sd_bus_message* m) override
364*7f664254SPatrick Williams     {
365*7f664254SPatrick Williams         return ::sd_bus_message_get_error(m);
366*7f664254SPatrick Williams     }
367*7f664254SPatrick Williams 
368*7f664254SPatrick Williams     int sd_bus_message_is_method_call(sd_bus_message* m, const char* interface,
369*7f664254SPatrick Williams                                       const char* member) override
370*7f664254SPatrick Williams     {
371*7f664254SPatrick Williams         return ::sd_bus_message_is_method_call(m, interface, member);
372*7f664254SPatrick Williams     }
373*7f664254SPatrick Williams 
374*7f664254SPatrick Williams     int sd_bus_message_is_method_error(sd_bus_message* m,
375*7f664254SPatrick Williams                                        const char* name) override
376*7f664254SPatrick Williams     {
377*7f664254SPatrick Williams         return ::sd_bus_message_is_method_error(m, name);
378*7f664254SPatrick Williams     }
379*7f664254SPatrick Williams 
380*7f664254SPatrick Williams     int sd_bus_message_is_signal(sd_bus_message* m, const char* interface,
381*7f664254SPatrick Williams                                  const char* member) override
382*7f664254SPatrick Williams     {
383*7f664254SPatrick Williams         return ::sd_bus_message_is_signal(m, interface, member);
384*7f664254SPatrick Williams     }
385*7f664254SPatrick Williams 
386*7f664254SPatrick Williams     int sd_bus_message_new_method_call(sd_bus* bus, sd_bus_message** m,
387*7f664254SPatrick Williams                                        const char* destination,
388*7f664254SPatrick Williams                                        const char* path, const char* interface,
389*7f664254SPatrick Williams                                        const char* member) override
390*7f664254SPatrick Williams     {
391*7f664254SPatrick Williams         return ::sd_bus_message_new_method_call(bus, m, destination, path,
392*7f664254SPatrick Williams                                                 interface, member);
393*7f664254SPatrick Williams     }
394*7f664254SPatrick Williams 
395*7f664254SPatrick Williams     int sd_bus_message_new_method_return(sd_bus_message* call,
396*7f664254SPatrick Williams                                          sd_bus_message** m) override
397*7f664254SPatrick Williams     {
398*7f664254SPatrick Williams         return ::sd_bus_message_new_method_return(call, m);
399*7f664254SPatrick Williams     }
400*7f664254SPatrick Williams 
401*7f664254SPatrick Williams     int sd_bus_message_new_method_errno(sd_bus_message* call,
402*7f664254SPatrick Williams                                         sd_bus_message** m, int error,
403*7f664254SPatrick Williams                                         const sd_bus_error* p) override
404*7f664254SPatrick Williams     {
405*7f664254SPatrick Williams         return ::sd_bus_message_new_method_errno(call, m, error, p);
406*7f664254SPatrick Williams     }
407*7f664254SPatrick Williams 
408*7f664254SPatrick Williams     int sd_bus_message_new_signal(sd_bus* bus, sd_bus_message** m,
409*7f664254SPatrick Williams                                   const char* path, const char* interface,
410*7f664254SPatrick Williams                                   const char* member) override
411*7f664254SPatrick Williams     {
412*7f664254SPatrick Williams         return ::sd_bus_message_new_signal(bus, m, path, interface, member);
413*7f664254SPatrick Williams     }
414*7f664254SPatrick Williams 
415*7f664254SPatrick Williams     int sd_bus_message_open_container(sd_bus_message* m, char type,
416*7f664254SPatrick Williams                                       const char* contents) override
417*7f664254SPatrick Williams     {
418*7f664254SPatrick Williams         return ::sd_bus_message_open_container(m, type, contents);
419*7f664254SPatrick Williams     }
420*7f664254SPatrick Williams 
421*7f664254SPatrick Williams     int sd_bus_message_read_basic(sd_bus_message* m, char type,
422*7f664254SPatrick Williams                                   void* p) override
423*7f664254SPatrick Williams     {
424*7f664254SPatrick Williams         return ::sd_bus_message_read_basic(m, type, p);
425*7f664254SPatrick Williams     }
426*7f664254SPatrick Williams 
427*7f664254SPatrick Williams     sd_bus_message* sd_bus_message_ref(sd_bus_message* m) override
428*7f664254SPatrick Williams     {
429*7f664254SPatrick Williams         return ::sd_bus_message_ref(m);
430*7f664254SPatrick Williams     }
431*7f664254SPatrick Williams 
432*7f664254SPatrick Williams     int sd_bus_message_skip(sd_bus_message* m, const char* types) override
433*7f664254SPatrick Williams     {
434*7f664254SPatrick Williams         return ::sd_bus_message_skip(m, types);
435*7f664254SPatrick Williams     }
436*7f664254SPatrick Williams 
437*7f664254SPatrick Williams     int sd_bus_message_verify_type(sd_bus_message* m, char type,
438*7f664254SPatrick Williams                                    const char* contents) override
439*7f664254SPatrick Williams     {
440*7f664254SPatrick Williams         return ::sd_bus_message_verify_type(m, type, contents);
441*7f664254SPatrick Williams     }
442*7f664254SPatrick Williams 
443*7f664254SPatrick Williams     int sd_bus_process(sd_bus* bus, sd_bus_message** r) override
444*7f664254SPatrick Williams     {
445*7f664254SPatrick Williams         return ::sd_bus_process(bus, r);
446*7f664254SPatrick Williams     }
447*7f664254SPatrick Williams 
448*7f664254SPatrick Williams     sd_bus* sd_bus_ref(sd_bus* bus) override
449*7f664254SPatrick Williams     {
450*7f664254SPatrick Williams         return ::sd_bus_ref(bus);
451*7f664254SPatrick Williams     }
452*7f664254SPatrick Williams 
453*7f664254SPatrick Williams     int sd_bus_request_name(sd_bus* bus, const char* name,
454*7f664254SPatrick Williams                             uint64_t flags) override
455*7f664254SPatrick Williams     {
456*7f664254SPatrick Williams         return ::sd_bus_request_name(bus, name, flags);
457*7f664254SPatrick Williams     }
458*7f664254SPatrick Williams 
459*7f664254SPatrick Williams     int sd_bus_send(sd_bus* bus, sd_bus_message* m, uint64_t* cookie) override
460*7f664254SPatrick Williams     {
461*7f664254SPatrick Williams         return ::sd_bus_send(bus, m, cookie);
462*7f664254SPatrick Williams     }
463*7f664254SPatrick Williams 
464*7f664254SPatrick Williams     sd_bus* sd_bus_unref(sd_bus* bus) override
465*7f664254SPatrick Williams     {
466*7f664254SPatrick Williams         return ::sd_bus_unref(bus);
467*7f664254SPatrick Williams     }
468*7f664254SPatrick Williams 
469*7f664254SPatrick Williams     sd_bus* sd_bus_flush_close_unref(sd_bus* bus) override
470*7f664254SPatrick Williams     {
471*7f664254SPatrick Williams         return ::sd_bus_flush_close_unref(bus);
472*7f664254SPatrick Williams     }
473*7f664254SPatrick Williams 
474*7f664254SPatrick Williams     int sd_bus_flush(sd_bus* bus) override
475*7f664254SPatrick Williams     {
476*7f664254SPatrick Williams         return ::sd_bus_flush(bus);
477*7f664254SPatrick Williams     }
478*7f664254SPatrick Williams 
479*7f664254SPatrick Williams     void sd_bus_close(sd_bus* bus) override
480*7f664254SPatrick Williams     {
481*7f664254SPatrick Williams         ::sd_bus_close(bus);
482*7f664254SPatrick Williams     }
483*7f664254SPatrick Williams 
484*7f664254SPatrick Williams     int sd_bus_wait(sd_bus* bus, uint64_t timeout_usec) override
485*7f664254SPatrick Williams     {
486*7f664254SPatrick Williams         return ::sd_bus_wait(bus, timeout_usec);
487*7f664254SPatrick Williams     }
488*7f664254SPatrick Williams };
489*7f664254SPatrick Williams 
490*7f664254SPatrick Williams extern SdBusImpl sdbus_impl;
491*7f664254SPatrick Williams 
492*7f664254SPatrick Williams } // namespace sdbusplus
493