18 #ifndef IOX_BINDING_C_WAIT_SET_H
19 #define IOX_BINDING_C_WAIT_SET_H
21 #include "iceoryx_binding_c/client.h"
22 #include "iceoryx_binding_c/enums.h"
23 #include "iceoryx_binding_c/internal/c2cpp_binding.h"
24 #include "iceoryx_binding_c/notification_info.h"
25 #include "iceoryx_binding_c/service_discovery.h"
26 #include "iceoryx_binding_c/subscriber.h"
27 #include "iceoryx_binding_c/types.h"
28 #include "iceoryx_binding_c/user_trigger.h"
33 typedef CLASS cpp2c_WaitSet* iox_ws_t;
42 void iox_ws_deinit(iox_ws_t
const self);
53 uint64_t iox_ws_timed_wait(iox_ws_t
const self,
54 struct timespec timeout,
55 iox_notification_info_t*
const notificationInfoArray,
56 const uint64_t notificationInfoArrayCapacity,
57 uint64_t* missedElements);
67 uint64_t iox_ws_wait(iox_ws_t
const self,
68 iox_notification_info_t*
const notificationInfoArray,
69 const uint64_t notificationInfoArrayCapacity,
70 uint64_t* missedElements);
73 uint64_t iox_ws_size(iox_ws_t
const self);
76 uint64_t iox_ws_capacity(iox_ws_t
const self);
82 void iox_ws_mark_for_destruction(iox_ws_t
const self);
92 ENUM iox_WaitSetResult iox_ws_attach_subscriber_state(iox_ws_t
const self,
93 iox_sub_t
const subscriber,
94 const ENUM iox_SubscriberState subscriberState,
96 void (*callback)(iox_sub_t));
108 ENUM iox_WaitSetResult iox_ws_attach_subscriber_state_with_context_data(iox_ws_t
const self,
109 iox_sub_t
const subscriber,
110 const ENUM iox_SubscriberState subscriberState,
112 void (*callback)(iox_sub_t,
void*),
113 void*
const contextData);
123 ENUM iox_WaitSetResult iox_ws_attach_subscriber_event(iox_ws_t
const self,
124 iox_sub_t
const subscriber,
125 const ENUM iox_SubscriberEvent subscriberEvent,
126 const uint64_t eventId,
127 void (*callback)(iox_sub_t));
139 ENUM iox_WaitSetResult iox_ws_attach_subscriber_event_with_context_data(iox_ws_t
const self,
140 iox_sub_t
const subscriber,
141 const ENUM iox_SubscriberEvent subscriberEvent,
142 const uint64_t eventId,
143 void (*callback)(iox_sub_t,
void*),
144 void*
const contextData);
153 ENUM iox_WaitSetResult iox_ws_attach_user_trigger_event(iox_ws_t
const self,
154 iox_user_trigger_t
const userTrigger,
155 const uint64_t eventId,
156 void (*callback)(iox_user_trigger_t));
167 ENUM iox_WaitSetResult iox_ws_attach_user_trigger_event_with_context_data(iox_ws_t
const self,
168 iox_user_trigger_t
const userTrigger,
169 const uint64_t eventId,
170 void (*callback)(iox_user_trigger_t,
void*),
171 void*
const contextData);
177 void iox_ws_detach_subscriber_event(iox_ws_t
const self,
178 iox_sub_t
const subscriber,
179 const ENUM iox_SubscriberEvent subscriberEvent);
185 void iox_ws_detach_subscriber_state(iox_ws_t
const self,
186 iox_sub_t
const subscriber,
187 const ENUM iox_SubscriberState subscriberState);
192 void iox_ws_detach_user_trigger_event(iox_ws_t
const self, iox_user_trigger_t
const userTrigger);
202 ENUM iox_WaitSetResult iox_ws_attach_client_event(
const iox_ws_t
self,
203 const iox_client_t client,
204 const ENUM iox_ClientEvent clientEvent,
205 const uint64_t eventId,
206 void (*callback)(iox_client_t));
217 ENUM iox_WaitSetResult iox_ws_attach_client_event_with_context_data(iox_ws_t
const self,
218 iox_client_t
const client,
219 const ENUM iox_ClientEvent clientEvent,
220 const uint64_t eventId,
221 void (*callback)(iox_client_t,
void*),
222 void*
const contextData);
232 ENUM iox_WaitSetResult iox_ws_attach_client_state(
const iox_ws_t
self,
233 const iox_client_t client,
234 const ENUM iox_ClientState clientState,
235 const uint64_t eventId,
236 void (*callback)(iox_client_t));
247 ENUM iox_WaitSetResult iox_ws_attach_client_state_with_context_data(iox_ws_t
const self,
248 iox_client_t
const client,
249 const ENUM iox_ClientState clientState,
250 const uint64_t eventId,
251 void (*callback)(iox_client_t,
void*),
252 void*
const contextData);
258 void iox_ws_detach_client_event(iox_ws_t
const self, iox_client_t
const client,
const ENUM iox_ClientEvent clientEvent);
264 void iox_ws_detach_client_state(iox_ws_t
const self, iox_client_t
const client,
const ENUM iox_ClientState clientState);
274 ENUM iox_WaitSetResult iox_ws_attach_server_event(
const iox_ws_t
self,
275 const iox_server_t server,
276 const ENUM iox_ServerEvent serverEvent,
277 const uint64_t eventId,
278 void (*callback)(iox_server_t));
289 ENUM iox_WaitSetResult iox_ws_attach_server_event_with_context_data(iox_ws_t
const self,
290 iox_server_t
const server,
291 const ENUM iox_ServerEvent serverEvent,
292 const uint64_t eventId,
293 void (*callback)(iox_server_t,
void*),
294 void*
const contextData);
304 ENUM iox_WaitSetResult iox_ws_attach_server_state(
const iox_ws_t
self,
305 const iox_server_t server,
306 const ENUM iox_ServerState serverState,
307 const uint64_t eventId,
308 void (*callback)(iox_server_t));
319 ENUM iox_WaitSetResult iox_ws_attach_server_state_with_context_data(iox_ws_t
const self,
320 iox_server_t
const server,
321 const ENUM iox_ServerState serverState,
322 const uint64_t eventId,
323 void (*callback)(iox_server_t,
void*),
324 void*
const contextData);
330 void iox_ws_detach_server_event(iox_ws_t
const self, iox_server_t
const server,
const ENUM iox_ServerEvent serverEvent);
336 void iox_ws_detach_server_state(iox_ws_t
const self, iox_server_t
const server,
const ENUM iox_ServerState serverState);
346 ENUM iox_WaitSetResult iox_ws_attach_service_discovery_event(
const iox_ws_t
self,
347 const iox_service_discovery_t serviceDiscovery,
348 const ENUM iox_ServiceDiscoveryEvent serviceDiscoveryEvent,
349 const uint64_t eventId,
350 void (*callback)(iox_service_discovery_t));
361 ENUM iox_WaitSetResult
362 iox_ws_attach_service_discovery_event_with_context_data(iox_ws_t
const self,
363 iox_service_discovery_t
const serviceDiscovery,
364 const ENUM iox_ServiceDiscoveryEvent serviceDiscoveryEvent,
365 const uint64_t eventId,
366 void (*callback)(iox_service_discovery_t,
void*),
367 void*
const contextData);
373 void iox_ws_detach_service_discovery_event(iox_ws_t
const self,
374 iox_service_discovery_t
const serviceDiscovery,
375 const ENUM iox_ServiceDiscoveryEvent serviceDiscoveryEvent);