17#ifndef IOX_BINDING_C_LISTENER_H
18#define IOX_BINDING_C_LISTENER_H
20#include "iceoryx_binding_c/client.h"
21#include "iceoryx_binding_c/enums.h"
22#include "iceoryx_binding_c/internal/c2cpp_binding.h"
23#include "iceoryx_binding_c/server.h"
24#include "iceoryx_binding_c/service_discovery.h"
25#include "iceoryx_binding_c/subscriber.h"
26#include "iceoryx_binding_c/types.h"
27#include "iceoryx_binding_c/user_trigger.h"
29typedef CLASS Listener* iox_listener_t;
39void iox_listener_deinit(iox_listener_t
const self);
47ENUM iox_ListenerResult iox_listener_attach_subscriber_event(iox_listener_t
const self,
48 iox_sub_t
const subscriber,
49 const ENUM iox_SubscriberEvent subscriberEvent,
50 void (*callback)(iox_sub_t));
60ENUM iox_ListenerResult
61iox_listener_attach_subscriber_event_with_context_data(iox_listener_t
const self,
62 iox_sub_t
const subscriber,
63 const ENUM iox_SubscriberEvent subscriberEvent,
64 void (*callback)(iox_sub_t,
void*),
65 void*
const contextData);
72ENUM iox_ListenerResult iox_listener_attach_user_trigger_event(iox_listener_t
const self,
73 iox_user_trigger_t
const userTrigger,
74 void (*callback)(iox_user_trigger_t));
83ENUM iox_ListenerResult iox_listener_attach_user_trigger_event_with_context_data(iox_listener_t
const self,
84 iox_user_trigger_t
const userTrigger,
85 void (*callback)(iox_user_trigger_t,
87 void*
const contextData);
93void iox_listener_detach_subscriber_event(iox_listener_t
const self,
94 iox_sub_t
const subscriber,
95 const ENUM iox_SubscriberEvent subscriberEvent);
100void iox_listener_detach_user_trigger_event(iox_listener_t
const self, iox_user_trigger_t
const userTrigger);
106uint64_t iox_listener_size(iox_listener_t
const self);
111uint64_t iox_listener_capacity(iox_listener_t
const self);
119ENUM iox_ListenerResult iox_listener_attach_client_event(iox_listener_t
const self,
120 iox_client_t
const client,
121 const ENUM iox_ClientEvent clientEvent,
122 void (*callback)(iox_client_t));
132ENUM iox_ListenerResult iox_listener_attach_client_event_with_context_data(iox_listener_t
const self,
133 iox_client_t
const client,
134 const ENUM iox_ClientEvent clientEvent,
135 void (*callback)(iox_client_t,
void*),
136 void*
const contextData);
142void iox_listener_detach_client_event(iox_listener_t
const self,
143 iox_client_t
const client,
144 const ENUM iox_ClientEvent clientEvent);
152ENUM iox_ListenerResult iox_listener_attach_server_event(iox_listener_t
const self,
153 iox_server_t
const server,
154 const ENUM iox_ServerEvent serverEvent,
155 void (*callback)(iox_server_t));
165ENUM iox_ListenerResult iox_listener_attach_server_event_with_context_data(iox_listener_t
const self,
166 iox_server_t
const server,
167 const ENUM iox_ServerEvent serverEvent,
168 void (*callback)(iox_server_t,
void*),
169 void*
const contextData);
175void iox_listener_detach_server_event(iox_listener_t
const self,
176 iox_server_t
const server,
177 const ENUM iox_ServerEvent serverEvent);
185ENUM iox_ListenerResult
186iox_listener_attach_service_discovery_event(iox_listener_t
const self,
187 iox_service_discovery_t
const serviceDiscovery,
188 const ENUM iox_ServiceDiscoveryEvent serviceDiscoveryEvent,
189 void (*callback)(iox_service_discovery_t));
199ENUM iox_ListenerResult iox_listener_attach_service_discovery_event_with_context_data(
200 iox_listener_t
const self,
201 iox_service_discovery_t
const serviceDiscovery,
202 const ENUM iox_ServiceDiscoveryEvent serviceDiscoveryEvent,
203 void (*callback)(iox_service_discovery_t,
void*),
204 void*
const contextData);
210void iox_listener_detach_service_discovery_event(iox_listener_t
const self,
211 iox_service_discovery_t
const serviceDiscovery,
212 const ENUM iox_ServiceDiscoveryEvent serviceDiscoveryEvent);