RTI Connext DDS Micro C API  Version 4.1.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
Zero Copy v2 API

NETIO Zero Copy v2 interface. More...

Data Structures

struct  ZCOPY_NotifMechanismProperty
 Notification mechanism property for the default implementation. More...
struct  ZCOPY_NotifInterfaceFactoryProperty
 Notification interface property. More...
struct  ZCOPY_NotifUserInterfaceI
 Notification mechanism user interface. More...

Macros

#define ZCOPY_NotifInterfaceFactoryProperty_INITIALIZER
 Constant to initialize a ZCOPY_NotifInterfaceFactoryProperty.

Typedefs

typedef RTI_BOOL(* NETIO_Interface_resolve_addressFunc )(NETIO_Interface_T *netio_intf, const char *address_string, struct NETIO_Address *address_value, RTI_BOOL *invalid)
 Resolve an address of a user interface.
typedef RTI_BOOL(* NETIO_Interface_get_route_tableFunc )(NETIO_Interface_T *netio_intf, struct NETIO_AddressSeq *address, struct NETIO_NetmaskSeq *netmask)
 Get the route table.
typedef NETIO_Interface_T *(* ZCOPY_NotifUserInterface_createFunc )(NETIO_Interface_T *upstream, void *user_property)
 Create an instance of a user interface with upstream as the owner.
typedef void(* ZCOPY_NotifUserInterface_deleteFunc )(NETIO_Interface_T *user_intf)
 Delete an instance of a user interface.
typedef RTI_BOOL(* ZCOPY_NotifUserInterface_reserve_addressFunc )(NETIO_Interface_T *user_intf, struct NETIO_Address *src_addr, void **port_entry_out)
 Reserve an address on a user interface.
typedef RTI_BOOL(* ZCOPY_NotifUserInterface_release_addressFunc )(NETIO_Interface_T *user_intf, struct NETIO_Address *src_addr, void *port_entry)
 Release an address on a user interface.
typedef RTI_BOOL(* ZCOPY_NotifUserInterface_add_routeFunc )(NETIO_Interface_T *user_intf, struct NETIO_Address *source, struct NETIO_Address *destination, void **route_entry_out)
 Add a route on a user interface.
typedef RTI_BOOL(* ZCOPY_NotifUserInterface_delete_routeFunc )(NETIO_Interface_T *user_intf, struct NETIO_Address *source, struct NETIO_Address *destination, void *route_entry)
 Delete a route on a user interface.
typedef RTI_BOOL(* ZCOPY_NotifUserInterface_sendFunc )(NETIO_Interface_T *self, struct NETIO_Address *source, struct NETIO_Address *destination, void *route_entry)
 Send a notification on a user interface.
typedef RTI_BOOL(* ZCOPY_NotifUserInterface_bindFunc )(NETIO_Interface_T *user_intf, struct NETIO_Address *src_addr, struct NETIO_Address *dst_addr, void *port_entry, void **bind_entry_out)
 Bind an address on a user interface.
typedef RTI_BOOL(* ZCOPY_NotifUserInterface_unbindFunc )(NETIO_Interface_T *user_intf, struct NETIO_Address *src_addr, struct NETIO_Address *dst_addr, void *port_entry, void *bind_entry)
 Unbind an address on a user interface.
typedef RTI_BOOL(* ZCOPY_NotifUserInterface_notify_portFunc )(NETIO_Interface_T *user_intf, void *port_entry)
 Notify a specific receive port.

Functions

NETIO_ZCOPYDllExport RTI_BOOL NDDS_Transport_ZeroCopy_initialize (RT_Registry_T *registry, const char *transport_name, struct ZCOPY_NotifInterfaceFactoryProperty *property)
 Initialize the NDDS transport with Zero Copy support.
NETIO_ZCOPYDllExport RTI_BOOL NDDS_Transport_ZeroCopy_finalize (RT_Registry_T *registry, const char *transport_name)
 Finalize the Zero Copy NDDS transport.
NETIO_ZCOPYDllExport struct
RT_ComponentFactoryI * 
ZCOPY_NotifInterfaceFactory_get_interface (void)
 Gets the singleton instance of the notification interface factory.
RTI_BOOL ZCOPY_NotifMechanism_register (RT_Registry_T *registry, const char *name, struct ZCOPY_NotifInterfaceFactoryProperty *property)
 Register a notification transport using the notification mechanism.
RTI_BOOL ZCOPY_NotifMechanism_unregister (RT_Registry_T *registry, const char *name)
 Unregister a notification transport.
RTI_BOOL ZCOPY_NotifInterface_receive (NETIO_Interface_T *netio_intf, const struct NETIO_Address *port, RTI_BOOL *has_more_data_out)
 Definition of the NETIO_InterfaceI receive method.
RTI_BOOL ZCOPY_NotifInterfaceFactory_register (RT_Registry_T *registry, const char *name, struct ZCOPY_NotifInterfaceFactoryProperty *property)
 Register the notification interface factory with a factory property.
RTI_BOOL ZCOPY_NotifInterfaceFactory_unregister (RT_Registry_T *registry, const char *name)
 Unregister the notification interface factory.
struct ZCOPY_NotifUserInterfaceIZCOPY_NotifUserInterface_get_interface (void)
 Gets the interface from the notification mechanism.
void * ZCOPY_NotifUserInterface_get_property (void)
 Gets the property from the notification mechanism.

Detailed Description

NETIO Zero Copy v2 interface.

<<eXtension>> <<cert>> The NETIO Zero Copy v2 module implements the RTI Connext DDS Micro Zero Copy v2 interface.


Macro Definition Documentation

#define ZCOPY_NotifInterfaceFactoryProperty_INITIALIZER
Value:
{ \
NETIO_InterfaceFactoryProperty_INITIALIZER, /* _parent */ \
1, /* max_samples_per_notif */ \
NULL, /* user_intf */ \
NULL, /* user_property */ \
}

Constant to initialize a ZCOPY_NotifInterfaceFactoryProperty.


Typedef Documentation

typedef RTI_BOOL(* NETIO_Interface_resolve_addressFunc)(NETIO_Interface_T *netio_intf, const char *address_string, struct NETIO_Address *address_value, RTI_BOOL *invalid)

Resolve an address of a user interface.

Instruct the notification mechanism interface specified by user_intf to determine if the address string address_string is a valid address and return the result in address_value.

typedef RTI_BOOL(* NETIO_Interface_get_route_tableFunc)(NETIO_Interface_T *netio_intf, struct NETIO_AddressSeq *address, struct NETIO_NetmaskSeq *netmask)

Get the route table.

Instruct the notification mechanism interface netio_intf to return a sequence of address and netmask pairs this interface can send to.

typedef NETIO_Interface_T*(* ZCOPY_NotifUserInterface_createFunc)(NETIO_Interface_T *upstream, void *user_property)

Create an instance of a user interface with upstream as the owner.

typedef void(* ZCOPY_NotifUserInterface_deleteFunc)(NETIO_Interface_T *user_intf)

Delete an instance of a user interface.

typedef RTI_BOOL(* ZCOPY_NotifUserInterface_reserve_addressFunc)(NETIO_Interface_T *user_intf, struct NETIO_Address *src_addr, void **port_entry_out)

Reserve an address on a user interface.

Instruct the notification mechanism interface specified by user_intf to setup resources for listening to messages on the address src_addr and return a port_entry_out. The port_entry_out will be provided to a bind call.

typedef RTI_BOOL(* ZCOPY_NotifUserInterface_release_addressFunc)(NETIO_Interface_T *user_intf, struct NETIO_Address *src_addr, void *port_entry)

Release an address on a user interface.

Instruct the notification mechanism interface specified by user_intf to release resources for listening to messages on the address src_addr.

typedef RTI_BOOL(* ZCOPY_NotifUserInterface_add_routeFunc)(NETIO_Interface_T *user_intf, struct NETIO_Address *source, struct NETIO_Address *destination, void **route_entry_out)

Add a route on a user interface.

Instruct the notification mechanism interface specified by user_intf to add a route from the source to the destination. The route_entry_out will be provided to the user later when calling send.

typedef RTI_BOOL(* ZCOPY_NotifUserInterface_delete_routeFunc)(NETIO_Interface_T *user_intf, struct NETIO_Address *source, struct NETIO_Address *destination, void *route_entry)

Delete a route on a user interface.

Not available in CERT.

Instruct the notification mechanism interface specified by user_intf to remove a route from the source to the destination.

typedef RTI_BOOL(* ZCOPY_NotifUserInterface_sendFunc)(NETIO_Interface_T *self, struct NETIO_Address *source, struct NETIO_Address *destination, void *route_entry)

Send a notification on a user interface.

Instruct the notification mechanism interface specified by user_intf to send a notification to the destination using the route_entry.

typedef RTI_BOOL(* ZCOPY_NotifUserInterface_bindFunc)(NETIO_Interface_T *user_intf, struct NETIO_Address *src_addr,struct NETIO_Address *dst_addr,void *port_entry, void **bind_entry_out)

Bind an address on a user interface.

Instruct the notification mechanism interface specified by user_intf to start listening for messages on the address specified by src_addr on the given port_entry.

typedef RTI_BOOL(* ZCOPY_NotifUserInterface_unbindFunc)(NETIO_Interface_T *user_intf, struct NETIO_Address *src_addr,struct NETIO_Address *dst_addr,void *port_entry, void *bind_entry)

Unbind an address on a user interface.

Instruct the notification mechanism interface specified by user_intf to stop listening for messages on the address specified by src_addr.

typedef RTI_BOOL(* ZCOPY_NotifUserInterface_notify_portFunc)(NETIO_Interface_T *user_intf, void *port_entry)

Notify a specific receive port.

Instruct the notification mechanism interface specified by user_intf to notify the receive port specified by port_entry.


Function Documentation

NETIO_ZCOPYDllExport RTI_BOOL NDDS_Transport_ZeroCopy_initialize ( RT_Registry_T *  registry,
const char *  transport_name,
struct ZCOPY_NotifInterfaceFactoryProperty property 
)

Initialize the NDDS transport with Zero Copy support.

This function initializes the NDDS transport with Zero Copy support by registering the transport and associated history factories in the provided registry. It also allows you to specify the transport name and a set of properties for the Zero Copy notification interface.

Parameters:
[in]registryThe registry where the transport and history factories will be registered.
[in]transport_nameThe name of the transport. If NULL, the default transport name will be used.
[in]propertyA pointer to the properties for the Zero Copy notification interface. If NULL, the transport will not be registered.
Returns:
RTI_TRUE if the initialization was successful, RTI_FALSE otherwise.
Note:
It is acceptable for transport_name and property to be NULL. If transport_name is NULL, the default transport name is used. If property is NULL, the transport is not registered.
NETIO_ZCOPYDllExport RTI_BOOL NDDS_Transport_ZeroCopy_finalize ( RT_Registry_T *  registry,
const char *  transport_name 
)

Finalize the Zero Copy NDDS transport.

This function finalizes the Zero Copy NDDS transport by unregistering the transport and associated history factories.

Parameters:
[in]registryThe registry where the transport and history factories will be unregistered.
[in]transport_nameThe name of the transport to unregister.
Note:
It is acceptable for transport_name to be NULL. If transport_name is NULL we will only unregister the associated history factories
Returns:
RTI_TRUE if it was successful, RTI_FALSE otherwise.
NETIO_ZCOPYDllExport struct RT_ComponentFactoryI* ZCOPY_NotifInterfaceFactory_get_interface ( void  )
read

Gets the singleton instance of the notification interface factory.

Returns:
Pointer to notification interface plugin factory.
RTI_BOOL ZCOPY_NotifMechanism_register ( RT_Registry_T *  registry,
const char *  name,
struct ZCOPY_NotifInterfaceFactoryProperty property 
)

Register a notification transport using the notification mechanism.

Parameters:
[in]registryRegistry used to register the transport.
[in]nameName of the transport.
[in]propertyTransport property.
Returns:
RTI_TRUE if the transport was registered successfully, RTI_FALSE otherwise.
RTI_BOOL ZCOPY_NotifMechanism_unregister ( RT_Registry_T *  registry,
const char *  name 
)

Unregister a notification transport.

Parameters:
[in]registryRegistry used to unregister the transport.
[in]nameName of the transport.
Returns:
RTI_TRUE if the transport was registered successfully, RTI_FALSE otherwise.
RTI_BOOL ZCOPY_NotifInterface_receive ( NETIO_Interface_T netio_intf,
const struct NETIO_Address port,
RTI_BOOL has_more_data_out 
)

Definition of the NETIO_InterfaceI receive method.

Parameters:
[in]netio_intfThe notification interface to receive on.
[in]portThe port to receive on.
[out]has_more_data_outWhether there is more data to receive.
Returns:
RTI_TRUE on success, RTI_FALSE on failure.

See Also NETIO_Interface_receive, NETIO_InterfaceI.

RTI_BOOL ZCOPY_NotifInterfaceFactory_register ( RT_Registry_T *  registry,
const char *  name,
struct ZCOPY_NotifInterfaceFactoryProperty property 
)

Register the notification interface factory with a factory property.

Parameters:
[in]registryThe registry used to register the factory.
[in]nameThe name used to register the factory.
[in]propertyThe property used to register the factory.
Returns:
RTI_TRUE if the factory was registered successfully, RTI_FALSE otherwise.
RTI_BOOL ZCOPY_NotifInterfaceFactory_unregister ( RT_Registry_T *  registry,
const char *  name 
)

Unregister the notification interface factory.

Parameters:
[in]registryThe registry used to unregister the factory.
[in]nameThe name used to unregister the factory.
Returns:
RTI_TRUE if the factory was unregistered successfully, RTI_FALSE otherwise.
struct ZCOPY_NotifUserInterfaceI* ZCOPY_NotifUserInterface_get_interface ( void  )
read

Gets the interface from the notification mechanism.

Returns the interface for the default implementation of the notification mechanism

Returns:
A pointer to ZCOPY_NotifUserInterfaceI. Returning NULL will lead to failure.
void* ZCOPY_NotifUserInterface_get_property ( void  )

Gets the property from the notification mechanism.

Returns the default properties for the default implementation of the notification mechansim.

Returns:
Notification mechanism property. Returning NULL is accepted.

RTI Connext DDS Micro C API Version 4.1.0 Copyright © Sun Dec 8 2024 Real-Time Innovations, Inc