Skip to content

iceoryx_binding_c/listener.h🔗

Types🔗

Name
typedef CLASS Listener * iox_listener_t

Functions🔗

Name
iox_listener_t iox_listener_init(iox_listener_storage_t * self)
initializes a listener struct from a storage struct pointer
void iox_listener_deinit(iox_listener_t const self)
after using an iox_listener_t it must be cleaned up with this function
ENUM iox_ListenerResult iox_listener_attach_subscriber_event(iox_listener_t const self, iox_sub_t const subscriber, const ENUM iox_SubscriberEvent subscriberEvent, void(*)(iox_sub_t) callback)
Attaches a subscriber event to the listener.
ENUM iox_ListenerResult iox_listener_attach_subscriber_event_with_context_data(iox_listener_t const self, iox_sub_t const subscriber, const ENUM iox_SubscriberEvent subscriberEvent, void()(iox_sub_t, void ) callback, void *const contextData)
Attaches a subscriber event to the listener. The callback has an additional contextData argument to provide access to user defined data.
ENUM iox_ListenerResult iox_listener_attach_user_trigger_event(iox_listener_t const self, iox_user_trigger_t const userTrigger, void(*)(iox_user_trigger_t) callback)
Attaches a user trigger to the listener.
ENUM iox_ListenerResult iox_listener_attach_user_trigger_event_with_context_data(iox_listener_t const self, iox_user_trigger_t const userTrigger, void()(iox_user_trigger_t, void ) callback, void *const contextData)
Attaches a user trigger to the listener. The callback has an additional contextData argument to provide access to user defined data.
void iox_listener_detach_subscriber_event(iox_listener_t const self, iox_sub_t const subscriber, const ENUM iox_SubscriberEvent subscriberEvent)
Detaches a subscriber event from the listener.
void iox_listener_detach_user_trigger_event(iox_listener_t const self, iox_user_trigger_t const userTrigger)
Detaches a user trigger from the listener.
uint64_t iox_listener_size(iox_listener_t const self)
Returns the size, the number of attached events of a listener.
uint64_t iox_listener_capacity(iox_listener_t const self)
Returns the capacity of a listener (how many events can be attached).
ENUM iox_ListenerResult iox_listener_attach_client_event(iox_listener_t const self, iox_client_t const client, const ENUM iox_ClientEvent clientEvent, void(*)(iox_client_t) callback)
Attaches a client event to the listener.
ENUM iox_ListenerResult iox_listener_attach_client_event_with_context_data(iox_listener_t const self, iox_client_t const client, const ENUM iox_ClientEvent clientEvent, void()(iox_client_t, void ) callback, void *const contextData)
Attaches a client event to the listener. The callback has an additional contextData argument to provide access to user defined data.
void iox_listener_detach_client_event(iox_listener_t const self, iox_client_t const client, const ENUM iox_ClientEvent clientEvent)
Detaches a client from the listener.
ENUM iox_ListenerResult iox_listener_attach_server_event(iox_listener_t const self, iox_server_t const server, const ENUM iox_ServerEvent serverEvent, void(*)(iox_server_t) callback)
Attaches a server event to the listener.
ENUM iox_ListenerResult iox_listener_attach_server_event_with_context_data(iox_listener_t const self, iox_server_t const server, const ENUM iox_ServerEvent serverEvent, void()(iox_server_t, void ) callback, void *const contextData)
Attaches a server event to the listener. The callback has an additional contextData argument to provide access to user defined data.
void iox_listener_detach_server_event(iox_listener_t const self, iox_server_t const server, const ENUM iox_ServerEvent serverEvent)
Detaches a server from the listener.
ENUM iox_ListenerResult iox_listener_attach_service_discovery_event(iox_listener_t const self, iox_service_discovery_t const serviceDiscovery, const ENUM iox_ServiceDiscoveryEvent serviceDiscoveryEvent, void(*)(iox_service_discovery_t) callback)
Attaches a service discovery event to the listener.
ENUM iox_ListenerResult iox_listener_attach_service_discovery_event_with_context_data(iox_listener_t const self, iox_service_discovery_t const serviceDiscovery, const ENUM iox_ServiceDiscoveryEvent serviceDiscoveryEvent, void()(iox_service_discovery_t, void ) callback, void *const contextData)
Attaches a service discovery event to the listener. The callback has an additional contextData argument to provide access to user defined data.
void iox_listener_detach_service_discovery_event(iox_listener_t const self, iox_service_discovery_t const serviceDiscovery, const ENUM iox_ServiceDiscoveryEvent serviceDiscoveryEvent)
Detaches a service discovery event from the listener.

Types Documentation🔗

typedef iox_listener_t🔗

typedef CLASS Listener* iox_listener_t;

Functions Documentation🔗

function iox_listener_init🔗

iox_listener_t iox_listener_init(
    iox_listener_storage_t * self
)

initializes a listener struct from a storage struct pointer

Parameters:

  • self pointer to raw memory which can hold a listener

Return: an initialized iox_listener_t

function iox_listener_deinit🔗

void iox_listener_deinit(
    iox_listener_t const self
)

after using an iox_listener_t it must be cleaned up with this function

Parameters:

  • self the listener which should be deinitialized

function iox_listener_attach_subscriber_event🔗

ENUM iox_ListenerResult iox_listener_attach_subscriber_event(
    iox_listener_t const self,
    iox_sub_t const subscriber,
    const ENUM iox_SubscriberEvent subscriberEvent,
    void(*)(iox_sub_t) callback
)

Attaches a subscriber event to the listener.

Parameters:

  • self listener to which the event should be attached to
  • subscriber subscriber which emits the event
  • subscriberEvent the event which should trigger the listener
  • callback the callback which is called when an event triggers the listener

Return: when successful iox_ListenerResult::ListenerResult_SUCCESS otherwise an enum which describes the error

function iox_listener_attach_subscriber_event_with_context_data🔗

ENUM iox_ListenerResult iox_listener_attach_subscriber_event_with_context_data(
    iox_listener_t const self,
    iox_sub_t const subscriber,
    const ENUM iox_SubscriberEvent subscriberEvent,
    void(*)(iox_sub_t, void *) callback,
    void *const contextData
)

Attaches a subscriber event to the listener. The callback has an additional contextData argument to provide access to user defined data.

Parameters:

  • self listener to which the event should be attached to
  • subscriber subscriber which emits the event
  • subscriberEvent the event which should trigger the listener
  • callback the callback which is called when an event triggers the listener
  • contextData a void pointer which is provided as second argument to the callback

Return: when successful iox_ListenerResult::ListenerResult_SUCCESS otherwise an enum which describes the error

function iox_listener_attach_user_trigger_event🔗

ENUM iox_ListenerResult iox_listener_attach_user_trigger_event(
    iox_listener_t const self,
    iox_user_trigger_t const userTrigger,
    void(*)(iox_user_trigger_t) callback
)

Attaches a user trigger to the listener.

Parameters:

  • self listener to which the event should be attached to
  • userTrigger user trigger which emits the event
  • callback the callback which is called when the user trigger triggers the listener

Return: when successful iox_ListenerResult::ListenerResult_SUCCESS otherwise an enum which describes the error

function iox_listener_attach_user_trigger_event_with_context_data🔗

ENUM iox_ListenerResult iox_listener_attach_user_trigger_event_with_context_data(
    iox_listener_t const self,
    iox_user_trigger_t const userTrigger,
    void(*)(iox_user_trigger_t, void *) callback,
    void *const contextData
)

Attaches a user trigger to the listener. The callback has an additional contextData argument to provide access to user defined data.

Parameters:

  • self listener to which the event should be attached to
  • userTrigger user trigger which emits the event
  • callback the callback which is called when the user trigger triggers the listener
  • contextData a void pointer which is provided as second argument to the callback

Return: when successful iox_ListenerResult::ListenerResult_SUCCESS otherwise an enum which describes the error

function iox_listener_detach_subscriber_event🔗

void iox_listener_detach_subscriber_event(
    iox_listener_t const self,
    iox_sub_t const subscriber,
    const ENUM iox_SubscriberEvent subscriberEvent
)

Detaches a subscriber event from the listener.

Parameters:

  • self listener from which the event should be detached
  • subscriber the subscriber which emits the event
  • subscriberEvent the subscriber event which is registered at the listener

function iox_listener_detach_user_trigger_event🔗

void iox_listener_detach_user_trigger_event(
    iox_listener_t const self,
    iox_user_trigger_t const userTrigger
)

Detaches a user trigger from the listener.

Parameters:

  • self listener from which the event should be detached
  • userTrigger the user trigger which emits the event

function iox_listener_size🔗

uint64_t iox_listener_size(
    iox_listener_t const self
)

Returns the size, the number of attached events of a listener.

Parameters:

  • self listener where the size should be acquired

Return: the size of the listener

function iox_listener_capacity🔗

uint64_t iox_listener_capacity(
    iox_listener_t const self
)

Returns the capacity of a listener (how many events can be attached).

Parameters:

  • self listener where the capacity should be acquired

Return: the capacity of the listener

function iox_listener_attach_client_event🔗

ENUM iox_ListenerResult iox_listener_attach_client_event(
    iox_listener_t const self,
    iox_client_t const client,
    const ENUM iox_ClientEvent clientEvent,
    void(*)(iox_client_t) callback
)

Attaches a client event to the listener.

Parameters:

  • self listener to which the event should be attached to
  • client client which emits the event
  • clientEvent the event which should trigger the listener
  • callback the callback which is called when an event triggers the listener

Return: when successful iox_ListenerResult::ListenerResult_SUCCESS otherwise an enum which describes the error

function iox_listener_attach_client_event_with_context_data🔗

ENUM iox_ListenerResult iox_listener_attach_client_event_with_context_data(
    iox_listener_t const self,
    iox_client_t const client,
    const ENUM iox_ClientEvent clientEvent,
    void(*)(iox_client_t, void *) callback,
    void *const contextData
)

Attaches a client event to the listener. The callback has an additional contextData argument to provide access to user defined data.

Parameters:

  • self listener to which the event should be attached to
  • client client which emits the event
  • clientEvent the event which should trigger the listener
  • callback the callback which is called when an event triggers the listener
  • contextData a void pointer which is provided as second argument to the callback

Return: when successful iox_ListenerResult::ListenerResult_SUCCESS otherwise an enum which describes the error

function iox_listener_detach_client_event🔗

void iox_listener_detach_client_event(
    iox_listener_t const self,
    iox_client_t const client,
    const ENUM iox_ClientEvent clientEvent
)

Detaches a client from the listener.

Parameters:

  • self listener from which the event should be detached
  • client the client which emits the event
  • clientEvent the event which should be removed from the listener

function iox_listener_attach_server_event🔗

ENUM iox_ListenerResult iox_listener_attach_server_event(
    iox_listener_t const self,
    iox_server_t const server,
    const ENUM iox_ServerEvent serverEvent,
    void(*)(iox_server_t) callback
)

Attaches a server event to the listener.

Parameters:

  • self listener to which the event should be attached to
  • server the server which emits the event
  • serverEvent the event which should trigger the listener
  • callback the callback which is called when an event triggers the listener

Return: when successful iox_ListenerResult::ListenerResult_SUCCESS otherwise an enum which describes the error

function iox_listener_attach_server_event_with_context_data🔗

ENUM iox_ListenerResult iox_listener_attach_server_event_with_context_data(
    iox_listener_t const self,
    iox_server_t const server,
    const ENUM iox_ServerEvent serverEvent,
    void(*)(iox_server_t, void *) callback,
    void *const contextData
)

Attaches a server event to the listener. The callback has an additional contextData argument to provide access to user defined data.

Parameters:

  • self listener to which the event should be attached to
  • server the server which emits the event
  • serverEvent the event which should trigger the listener
  • callback the callback which is called when an event triggers the listener
  • contextData a void pointer which is provided as second argument to the callback

Return: when successful iox_ListenerResult::ListenerResult_SUCCESS otherwise an enum which describes the error

function iox_listener_detach_server_event🔗

void iox_listener_detach_server_event(
    iox_listener_t const self,
    iox_server_t const server,
    const ENUM iox_ServerEvent serverEvent
)

Detaches a server from the listener.

Parameters:

  • self listener from which the event should be detached
  • server the server which emits the event
  • serverEvent the event which should be removed from the listener

function iox_listener_attach_service_discovery_event🔗

ENUM iox_ListenerResult iox_listener_attach_service_discovery_event(
    iox_listener_t const self,
    iox_service_discovery_t const serviceDiscovery,
    const ENUM iox_ServiceDiscoveryEvent serviceDiscoveryEvent,
    void(*)(iox_service_discovery_t) callback
)

Attaches a service discovery event to the listener.

Parameters:

  • self listener to which the event should be attached to
  • serviceDiscovery service discovery which emits the event
  • serviceDiscoveryEvent the event which should trigger the listener
  • callback the callback which is called when an event triggers the listener

Return: when successful iox_ListenerResult::ListenerResult_SUCCESS otherwise an enum which describes the error

function iox_listener_attach_service_discovery_event_with_context_data🔗

ENUM iox_ListenerResult iox_listener_attach_service_discovery_event_with_context_data(
    iox_listener_t const self,
    iox_service_discovery_t const serviceDiscovery,
    const ENUM iox_ServiceDiscoveryEvent serviceDiscoveryEvent,
    void(*)(iox_service_discovery_t, void *) callback,
    void *const contextData
)

Attaches a service discovery event to the listener. The callback has an additional contextData argument to provide access to user defined data.

Parameters:

  • self listener to which the event should be attached to
  • serviceDiscovery service discovery which emits the event
  • serviceDiscoveryEvent the event which should trigger the listener
  • callback the callback which is called when an event triggers the listener
  • contextData a void pointer which is provided as second argument to the callback

Return: when successful iox_ListenerResult::ListenerResult_SUCCESS otherwise an enum which describes the error

function iox_listener_detach_service_discovery_event🔗

void iox_listener_detach_service_discovery_event(
    iox_listener_t const self,
    iox_service_discovery_t const serviceDiscovery,
    const ENUM iox_ServiceDiscoveryEvent serviceDiscoveryEvent
)

Detaches a service discovery event from the listener.

Parameters:

  • self listener from which the event should be detached
  • serviceDiscovery the service discovery which emits the event
  • serviceDiscoveryEvent the service discovery event which should be removed from the listener

Source code🔗

// Copyright (c) 2021 - 2022 Apex.AI Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// SPDX-License-Identifier: Apache-2.0

#ifndef IOX_BINDING_C_LISTENER_H
#define IOX_BINDING_C_LISTENER_H

#include "iceoryx_binding_c/client.h"
#include "iceoryx_binding_c/enums.h"
#include "iceoryx_binding_c/internal/c2cpp_binding.h"
#include "iceoryx_binding_c/server.h"
#include "iceoryx_binding_c/service_discovery.h"
#include "iceoryx_binding_c/subscriber.h"
#include "iceoryx_binding_c/types.h"
#include "iceoryx_binding_c/user_trigger.h"

typedef CLASS Listener* iox_listener_t;


iox_listener_t iox_listener_init(iox_listener_storage_t* self);

void iox_listener_deinit(iox_listener_t const self);

ENUM iox_ListenerResult iox_listener_attach_subscriber_event(iox_listener_t const self,
                                                             iox_sub_t const subscriber,
                                                             const ENUM iox_SubscriberEvent subscriberEvent,
                                                             void (*callback)(iox_sub_t));

ENUM iox_ListenerResult
iox_listener_attach_subscriber_event_with_context_data(iox_listener_t const self,
                                                       iox_sub_t const subscriber,
                                                       const ENUM iox_SubscriberEvent subscriberEvent,
                                                       void (*callback)(iox_sub_t, void*),
                                                       void* const contextData);

ENUM iox_ListenerResult iox_listener_attach_user_trigger_event(iox_listener_t const self,
                                                               iox_user_trigger_t const userTrigger,
                                                               void (*callback)(iox_user_trigger_t));

ENUM iox_ListenerResult iox_listener_attach_user_trigger_event_with_context_data(iox_listener_t const self,
                                                                                 iox_user_trigger_t const userTrigger,
                                                                                 void (*callback)(iox_user_trigger_t,
                                                                                                  void*),
                                                                                 void* const contextData);

void iox_listener_detach_subscriber_event(iox_listener_t const self,
                                          iox_sub_t const subscriber,
                                          const ENUM iox_SubscriberEvent subscriberEvent);

void iox_listener_detach_user_trigger_event(iox_listener_t const self, iox_user_trigger_t const userTrigger);


uint64_t iox_listener_size(iox_listener_t const self);

uint64_t iox_listener_capacity(iox_listener_t const self);

ENUM iox_ListenerResult iox_listener_attach_client_event(iox_listener_t const self,
                                                         iox_client_t const client,
                                                         const ENUM iox_ClientEvent clientEvent,
                                                         void (*callback)(iox_client_t));

ENUM iox_ListenerResult iox_listener_attach_client_event_with_context_data(iox_listener_t const self,
                                                                           iox_client_t const client,
                                                                           const ENUM iox_ClientEvent clientEvent,
                                                                           void (*callback)(iox_client_t, void*),
                                                                           void* const contextData);

void iox_listener_detach_client_event(iox_listener_t const self,
                                      iox_client_t const client,
                                      const ENUM iox_ClientEvent clientEvent);

ENUM iox_ListenerResult iox_listener_attach_server_event(iox_listener_t const self,
                                                         iox_server_t const server,
                                                         const ENUM iox_ServerEvent serverEvent,
                                                         void (*callback)(iox_server_t));

ENUM iox_ListenerResult iox_listener_attach_server_event_with_context_data(iox_listener_t const self,
                                                                           iox_server_t const server,
                                                                           const ENUM iox_ServerEvent serverEvent,
                                                                           void (*callback)(iox_server_t, void*),
                                                                           void* const contextData);

void iox_listener_detach_server_event(iox_listener_t const self,
                                      iox_server_t const server,
                                      const ENUM iox_ServerEvent serverEvent);

ENUM iox_ListenerResult
iox_listener_attach_service_discovery_event(iox_listener_t const self,
                                            iox_service_discovery_t const serviceDiscovery,
                                            const ENUM iox_ServiceDiscoveryEvent serviceDiscoveryEvent,
                                            void (*callback)(iox_service_discovery_t));

ENUM iox_ListenerResult iox_listener_attach_service_discovery_event_with_context_data(
    iox_listener_t const self,
    iox_service_discovery_t const serviceDiscovery,
    const ENUM iox_ServiceDiscoveryEvent serviceDiscoveryEvent,
    void (*callback)(iox_service_discovery_t, void*),
    void* const contextData);

void iox_listener_detach_service_discovery_event(iox_listener_t const self,
                                                 iox_service_discovery_t const serviceDiscovery,
                                                 const ENUM iox_ServiceDiscoveryEvent serviceDiscoveryEvent);

#endif

Updated on 18 December 2023 at 13:02:35 CET