00001 /***************************************************************** 00002 * 00003 * file: cdx_udp_transport.h 00004 * desc: This file provides the CoreDX DDS UDP Transport API. 00005 * 00006 ***************************************************************** 00007 * 00008 * Copyright(C) 2006-2013 Twin Oaks Computing, Inc 00009 * All rights reserved. Castle Rock, CO 80108 00010 * 00011 ***************************************************************** 00012 * This software has been provided pursuant to a License Agreement 00013 * containing restrictions on its use. This software contains 00014 * valuable trade secrets and proprietary information of 00015 * Twin Oaks Computing, Inc and is protected by law. It may not be 00016 * copied or distributed in any form or medium, disclosed to third 00017 * parties, reverse engineered or used in any manner not provided 00018 * for in said License Agreement except with the prior written 00019 * authorization from Twin Oaks Computing, Inc. 00020 *****************************************************************/ 00021 #ifndef _COREDX_UDP_TRANSPORT_H 00022 #define _COREDX_UDP_TRANSPORT_H 00023 00024 #include <dds/coredx_transport.h> 00025 #include <dds/dds_seq.h> 00026 00027 #ifdef __cplusplus 00028 extern "C" { 00029 #endif 00030 00051 typedef struct CoreDX_UdpTransportConfig { 00052 short participant_index; 00055 unsigned char use_ipv4; 00056 unsigned char use_ipv6; 00058 CoreDX_IpTransportInterfaceSeq interfaces; 00060 unsigned char dynamic_interfaces; 00062 int rx_init_buffer_size; 00063 int rx_max_buffer_size; 00064 int tx_max_packet_size; 00066 int so_rcvbuf; 00067 int so_sndbuf; 00069 unsigned char multicast_address_v4[4]; 00070 unsigned char multicast_address_v6[16]; 00071 unsigned char multicast_ttl; 00072 unsigned char tx_meta_multicast; 00073 unsigned char tx_meta_unicast; 00074 unsigned char rx_meta_multicast; 00075 unsigned char rx_user_multicast; 00076 unsigned char advertise_meta_multicast; 00077 unsigned char advertise_user_multicast; 00079 /* BROADCAST */ 00080 unsigned char broadcast_address[4]; 00081 unsigned char do_meta_broadcast; 00084 unsigned int debug_flags; 00085 } CoreDX_UdpTransportConfig; 00086 00087 #define COREDX_UDP_TRANSPORT_CONFIG_DEFAULT NULL 00088 00093 COREDX_C_API DDS_ReturnCode_t CoreDX_UdpTransport_get_default_config( CoreDX_UdpTransportConfig * config ); 00100 COREDX_C_API DDS_ReturnCode_t CoreDX_UdpTransport_get_env_config ( CoreDX_UdpTransportConfig * config ); 00104 COREDX_C_API DDS_ReturnCode_t CoreDX_UdpTransport_clear_config ( CoreDX_UdpTransportConfig * config ); 00105 00113 COREDX_C_API CoreDX_Transport * CoreDX_UdpTransport_create_transport ( CoreDX_UdpTransportConfig * config ); 00114 00115 #ifdef __cplusplus 00116 }; 00117 #endif 00118 00119 #endif