Files
qt6-migration-pipeline/external/rti_connext_dds-7.7.0/include/ndds/osapi/osapi_interfaces.h
T
torstenandCopilot 342ffd3e5c Update submodule to latest BUILD_RTI fixes
- HandlerMinelayerData: BUILD_RTI Guards für RTI-Abhängigkeiten
- svcTabCommon: Export-Header-Fix via Fallback-Target
- TrainingAreaBase: Stub-Header für BUILD_RTI=OFF
- ddsfts: Include-Pfad und Dependency-Fixes
- BUILD_RTI=OFF Compilation vollständig unterstützt

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Entire-Checkpoint: 01M0JNZA586SACX1PRZ2DJAE5S
2026-08-21 19:30:20 +02:00

164 lines
4.5 KiB
C

/*
* (c) Copyright, Real-Time Innovations, 2015-2024.
* All rights reserved.
*
* No duplications, whole or partial, manual or electronic, may be made
* without express written permission. Any such copies, or
* revisions thereof, must display this notice unaltered.
* This code contains trade secrets of Real-Time Innovations, Inc.
*/
#ifndef osapi_interfaces_h
#define osapi_interfaces_h
#include "osapi/osapi_dll.h"
#include "osapi/osapi_type.h"
#include "osapi/osapi_socket.h"
#ifdef __cplusplus
extern "C" {
#endif
#define RTI_OSAPI_IPv4_ADDRESS_LENGTH (4)
/** @internal
* \ingroup RTIOsapiSocketClass
* \brief The maximum length of the interface name. For windows We store the
* friendlyName that can have a longer length. A larger value is required.
* According to the Windows documentation the maximum required length would be
* IF_MAX_STRING_SIZE + 1
*/
#if defined(RTI_WIN32)
#include <ifdef.h>
#define RTI_OSAPI_INTERFACE_NAME_LENGTH IF_MAX_STRING_SIZE + 1
#else
#define RTI_OSAPI_INTERFACE_NAME_LENGTH 16
#endif
typedef struct {
unsigned char address[RTI_OSAPI_IPv4_ADDRESS_LENGTH];
} RTIOsapiIPv4Address_t;
#define RTI_OSAPI_IPv4_ADDRESS_LOCALHOST \
{ \
{ \
127, 0, 0, 1 \
} \
}
#if defined(RTI_QNX) || (defined(RTI_LINUX) && !defined(RTI_ANDROID)) \
|| defined(RTI_DARWIN) || defined(RTI_INTIME) || defined(RTI_ANDROID)
/**
* In this case we retrieve interface info using the getifaddrs call so we
* use struct ifaddrs.
*/
#define RTI_OSAPI_INTERFACE_USEGETIFADDRS
#endif
/** @internal \ingroup RTIOsapiSocketClass
* @brief Internal structure for platform-independent interface enumeration.
*/
typedef struct RTIOsapiSocket_InterfaceDescription {
const char *name;
unsigned int index;
struct sockaddr *address;
unsigned int flags;
#if defined(RTI_WIN32)
char nameArray[RTI_OSAPI_INTERFACE_NAME_LENGTH];
#endif
} RTIOsapiSocket_InterfaceDescription;
#if defined(RTI_WIN32)
#define RTIOsapiSocket_InterfaceDescription_INITIALIZER \
{ \
NULL /* name */, \
0 /* index */, \
NULL /* address */, \
0 /* flags */, \
"\0" /* nameArray */ \
}
#else
#define RTIOsapiSocket_InterfaceDescription_INITIALIZER \
{ \
NULL /* name */, \
0 /* index */, \
NULL /* address */, \
0 /* flags */ \
}
#endif /* RTI_WIN32 */
/** @internal \ingroup RTIOsapiSocketClass
* @brief Enumerate local network socket interfaces.
*
* Return 1 on success and sets output parameters. Note: allocates memory;
* should be freed by \ref freeInterfaces
*/
extern RTIOsapiDllExport RTI_INT32 RTIOsapiSocket_getInterfaces(
char **outInterfaceBuffer,
int *outInterfaceBufferSize,
struct RTIOsapiSocket_InterfaceDescription **outInterfaceArray,
int *outInterfaceCount,
RTIOsapiSocketAFKind kindAF,
unsigned int requestedInterfacesMask,
unsigned int reportIgnoreInterfaceWarnings,
int inSocket);
/** @internal \ingroup RTIOsapiSocketClass
* @brief Free interface data returned from getInterfaces.
*/
extern RTIOsapiDllExport void RTIOsapiSocket_freeInterfaces(
int interfaceBufferSize,
char *interfaceBuffer,
int numInterfaces,
RTIOsapiSocket_InterfaceDescription *interfaceArray);
/** @internal \ingroup RTIOsapiSocketClass
* \brief Interface is running
*/
#define RTI_OSAPI_SOCKET_INTERFACE_FLAG_UP (0x1)
/** @internal \ingroup RTIOsapiSocketClass
* \brief Interface supports broadcast
*/
#define RTI_OSAPI_SOCKET_INTERFACE_FLAG_BROADCAST (0x2)
/** @internal \ingroup RTIOsapiSocketClass
* \brief Interface supports a loopback interface
*/
#define RTI_OSAPI_SOCKET_INTERFACE_FLAG_LOOPBACK (0x4)
/** @internal \ingroup RTIOsapiSocketClass
* \brief Interface is a point-to-point connection.
*/
#define RTI_OSAPI_SOCKET_INTERFACE_FLAG_POINTOPOINT (0x8)
/** @internal \ingroup RTIOsapiSocketClass
* \brief Interface supports multicast.
*/
#define RTI_OSAPI_SOCKET_INTERFACE_FLAG_MULTICAST (0x10)
/** @internal \ingroup RTIOsapiSocketClass
* \brief Interface has allocated all resources.
*/
#define RTI_OSAPI_SOCKET_INTERFACE_FLAG_RUNNING (0x20)
/** @internal \ingroup RTIOsapiSocketClass
* \brief Interface is master
*/
#define RTI_OSAPI_SOCKET_INTERFACE_FLAG_MASTER (0x40)
/** @internal \ingroup RTIOsapiSocketClass
* \brief Interface is slave
*/
#define RTI_OSAPI_SOCKET_INTERFACE_FLAG_SLAVE (0x80)
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* osapi_interfaces_h */