1 #pragma once 2 3 #include <systemd/sd-event.h> 4 5 namespace sdeventplus 6 { 7 namespace internal 8 { 9 10 class SdEvent 11 { 12 public: 13 virtual ~SdEvent() = default; 14 15 virtual int sd_event_default(sd_event** event) const = 0; 16 virtual int sd_event_new(sd_event** event) const = 0; 17 virtual sd_event* sd_event_ref(sd_event* event) const = 0; 18 virtual sd_event* sd_event_unref(sd_event* event) const = 0; 19 20 virtual int sd_event_prepare(sd_event* event) const = 0; 21 virtual int sd_event_wait(sd_event* event, uint64_t usec) const = 0; 22 virtual int sd_event_dispatch(sd_event* event) const = 0; 23 virtual int sd_event_run(sd_event* event, uint64_t usec) const = 0; 24 virtual int sd_event_loop(sd_event* event) const = 0; 25 virtual int sd_event_exit(sd_event* event, int code) const = 0; 26 27 virtual int sd_event_now(sd_event* event, clockid_t clock, 28 uint64_t* usec) const = 0; 29 30 virtual int sd_event_get_exit_code(sd_event* event, int* code) const = 0; 31 virtual int sd_event_get_watchdog(sd_event* event) const = 0; 32 virtual int sd_event_set_watchdog(sd_event* event, int b) const = 0; 33 34 virtual sd_event_source* 35 sd_event_source_ref(sd_event_source* source) const = 0; 36 virtual sd_event_source* 37 sd_event_source_unref(sd_event_source* source) const = 0; 38 39 virtual void* sd_event_source_set_userdata(sd_event_source* source, 40 void* userdata) const = 0; 41 42 virtual int 43 sd_event_source_get_description(sd_event_source* source, 44 const char** description) const = 0; 45 virtual int 46 sd_event_source_set_description(sd_event_source* source, 47 const char* description) const = 0; 48 virtual int 49 sd_event_source_set_prepare(sd_event_source* source, 50 sd_event_handler_t callback) const = 0; 51 virtual int sd_event_source_get_pending(sd_event_source* source) const = 0; 52 virtual int sd_event_source_get_priority(sd_event_source* source, 53 int64_t* priority) const = 0; 54 virtual int sd_event_source_set_priority(sd_event_source* source, 55 int64_t priority) const = 0; 56 virtual int sd_event_source_get_enabled(sd_event_source* source, 57 int* enabled) const = 0; 58 virtual int sd_event_source_set_enabled(sd_event_source* source, 59 int enabled) const = 0; 60 }; 61 62 class SdEventImpl : public SdEvent 63 { 64 public: 65 int sd_event_default(sd_event** event) const override 66 { 67 return ::sd_event_default(event); 68 } 69 70 int sd_event_new(sd_event** event) const override 71 { 72 return ::sd_event_default(event); 73 } 74 75 sd_event* sd_event_ref(sd_event* event) const override 76 { 77 return ::sd_event_ref(event); 78 } 79 80 sd_event* sd_event_unref(sd_event* event) const override 81 { 82 return ::sd_event_unref(event); 83 } 84 85 int sd_event_prepare(sd_event* event) const override 86 { 87 return ::sd_event_prepare(event); 88 } 89 90 int sd_event_wait(sd_event* event, uint64_t usec) const override 91 { 92 return ::sd_event_wait(event, usec); 93 } 94 95 int sd_event_dispatch(sd_event* event) const override 96 { 97 return ::sd_event_dispatch(event); 98 } 99 100 int sd_event_run(sd_event* event, uint64_t usec) const override 101 { 102 return ::sd_event_run(event, usec); 103 } 104 105 int sd_event_loop(sd_event* event) const override 106 { 107 return ::sd_event_loop(event); 108 } 109 110 int sd_event_exit(sd_event* event, int code) const override 111 { 112 return ::sd_event_exit(event, code); 113 } 114 115 int sd_event_now(sd_event* event, clockid_t clock, 116 uint64_t* usec) const override 117 { 118 return ::sd_event_now(event, clock, usec); 119 } 120 121 int sd_event_get_exit_code(sd_event* event, int* code) const override 122 { 123 return ::sd_event_get_exit_code(event, code); 124 } 125 126 int sd_event_get_watchdog(sd_event* event) const override 127 { 128 return ::sd_event_get_watchdog(event); 129 } 130 131 int sd_event_set_watchdog(sd_event* event, int b) const override 132 { 133 return ::sd_event_set_watchdog(event, b); 134 } 135 136 sd_event_source* sd_event_source_ref(sd_event_source* source) const override 137 { 138 return ::sd_event_source_ref(source); 139 } 140 141 sd_event_source* 142 sd_event_source_unref(sd_event_source* source) const override 143 { 144 return ::sd_event_source_unref(source); 145 } 146 147 void* sd_event_source_set_userdata(sd_event_source* source, 148 void* userdata) const override 149 { 150 return ::sd_event_source_set_userdata(source, userdata); 151 } 152 153 int sd_event_source_get_description(sd_event_source* source, 154 const char** description) const override 155 { 156 return ::sd_event_source_get_description(source, description); 157 } 158 159 int sd_event_source_set_description(sd_event_source* source, 160 const char* description) const override 161 { 162 return ::sd_event_source_set_description(source, description); 163 } 164 165 int sd_event_source_set_prepare(sd_event_source* source, 166 sd_event_handler_t callback) const override 167 { 168 return ::sd_event_source_set_prepare(source, callback); 169 } 170 171 int sd_event_source_get_pending(sd_event_source* source) const override 172 { 173 return ::sd_event_source_get_pending(source); 174 } 175 176 int sd_event_source_get_priority(sd_event_source* source, 177 int64_t* priority) const override 178 { 179 return ::sd_event_source_get_priority(source, priority); 180 } 181 182 int sd_event_source_set_priority(sd_event_source* source, 183 int64_t priority) const override 184 { 185 return ::sd_event_source_set_priority(source, priority); 186 } 187 188 int sd_event_source_get_enabled(sd_event_source* source, 189 int* enabled) const override 190 { 191 return ::sd_event_source_get_enabled(source, enabled); 192 } 193 194 int sd_event_source_set_enabled(sd_event_source* source, 195 int enabled) const override 196 { 197 return ::sd_event_source_set_enabled(source, enabled); 198 } 199 }; 200 201 extern SdEventImpl sdevent_impl; 202 203 } // namespace internal 204 } // namespace sdeventplus 205