/* (c) Copyright 2003-2021, Real-Time Innovations, Inc. All rights reserved. */ /* * @(#)ndds_discovery_c.h generated by: makeheader Tue Apr 7 22:56:15 2026 * * built from: ndds_discovery_c.ifc */ #ifndef ndds_discovery_c_h #define ndds_discovery_c_h #ifndef dds_c_builtin_h #include "dds_c/dds_c_builtin.h" #endif #ifndef dds_c_infrastructure_h #include "dds_c/dds_c_infrastructure.h" #endif #ifndef dds_c_domain_h #include "dds_c/dds_c_domain.h" #endif #ifndef disc_pluggable_h #include "disc/disc_pluggable.h" #endif #ifndef cdr_stream_h #include "cdr/cdr_stream.h" #endif #ifdef __cplusplus extern "C" { #endif #define NDDS_DISCOVERY_COOKIEVALUE_LENGTH (8) typedef struct NDDS_Discovery_CookieValue_t { /*i \dref_Discovery_CookieValue_t_data */ /* actual size of array can be increased as use cases arise */ DDS_UnsignedLong data[NDDS_DISCOVERY_COOKIEVALUE_LENGTH]; } NDDS_Discovery_CookieValue_t; /*i \dref_Discovery_CookieValue_t_INITIALIZER */ #define NDDS_Discovery_CookieValue_t_INITIALIZER \ { {0, 0, 0, 0, 0, 0, 0, 0} } typedef struct DISCCookieHandle NDDS_Discovery_CookieHandle_t; struct NDDS_Discovery_SourceInformation_t { /*i \dref_Discovery_SourceInformation_t_source_key */ /* key identifying the source supplier */ DDS_BuiltinTopicKey_t source_key; /*i \dref_Discovery_SourceInformation_t_source_timestamp */ /* timestamp of the information source */ struct DDS_Time_t source_timestamp; }; /*i \dref_Discovery_SourceInformation_t_INITIALIZER */ #define NDDS_Discovery_SourceInformation_t_INITIALIZER \ { DDS_BuiltinTopicKey_t_INITIALIZER, DDS_TIME_ZERO } typedef enum { /*i \dref_Discovery_AssertResult_t_OK_DISCOVERY_ASSERT_RESULT */ /* success */ NDDS_OK_DISCOVERY_ASSERT_RESULT, /*i \dref_Discovery_AssertResult_t_FAILED_DISCOVERY_ASSERT_RESULT */ /* failure */ NDDS_FAILED_DISCOVERY_ASSERT_RESULT, /*i \dref_Discovery_AssertResult_t_IGNORED_DISCOVERY_ASSERT_RESULT */ /* asserted entity is ignored by user */ NDDS_IGNORED_DISCOVERY_ASSERT_RESULT } NDDS_Discovery_AssertResult_t; typedef struct DISCParticipantDiscoveryPlugin NDDS_Discovery_ParticipantPluginHandle_t; typedef struct DISCEndpointDiscoveryPlugin NDDS_Discovery_EndpointPluginHandle_t; struct NDDS_Discovery_ParticipantPlugin; typedef struct NDDS_Discovery_ParticipantPlugin* (* NDDS_Discovery_ParticipantPlugin_create)( const struct DDS_PropertyQosPolicy * properties); typedef void (* NDDS_Discovery_ParticipantPlugin_delete)( struct NDDS_Discovery_ParticipantPlugin * discovery_plugin); typedef int(* NDDS_Discovery_ParticipantPlugin_CookieValue_t_compare)( const struct NDDS_Discovery_CookieValue_t *left, const struct NDDS_Discovery_CookieValue_t *right); typedef void(* NDDS_Discovery_ParticipantPlugin_AfterPluginRegisteredCallback)( struct NDDS_Discovery_ParticipantPlugin *discovery_plugin, const NDDS_Discovery_ParticipantPluginHandle_t *plugin_handle); typedef void(* NDDS_Discovery_ParticipantPlugin_GetPluginInformation)( struct NDDS_Discovery_ParticipantPlugin *discovery_plugin, const NDDS_Discovery_ParticipantPluginHandle_t *plugin_handle, DDS_UnsignedLong *dds_builtin_endpoints); typedef void(* NDDS_Discovery_ParticipantPlugin_AfterLocalParticipantEnabledCallback)( struct NDDS_Discovery_ParticipantPlugin *discovery_plugin, const NDDS_Discovery_ParticipantPluginHandle_t *plugin_handle, const struct DDS_ParticipantBuiltinTopicData *local_participant_data); typedef void(* NDDS_Discovery_ParticipantPlugin_AfterLocalParticipantQosChangedCallback)( struct NDDS_Discovery_ParticipantPlugin *discovery_plugin, const NDDS_Discovery_ParticipantPluginHandle_t *plugin_handle, const struct DDS_ParticipantBuiltinTopicData *local_participant_data); typedef void(* NDDS_Discovery_ParticipantPlugin_BeforeLocalParticipantDeletedCallback)( struct NDDS_Discovery_ParticipantPlugin *discovery_plugin, const NDDS_Discovery_ParticipantPluginHandle_t *plugin_handle, const DDS_BuiltinTopicKey_t *local_participant_key); typedef void(* NDDS_Discovery_ParticipantPlugin_AfterLocalParticipantDeletedCallback)( struct NDDS_Discovery_ParticipantPlugin *discovery_plugin, const NDDS_Discovery_ParticipantPluginHandle_t *plugin_handle, const DDS_BuiltinTopicKey_t *local_participant_key); typedef void(* NDDS_Discovery_ParticipantPlugin_AfterRemoteParticipantEnabledCallback)( struct NDDS_Discovery_ParticipantPlugin *discovery_plugin, const NDDS_Discovery_ParticipantPluginHandle_t *plugin_handle, const struct DDS_ParticipantBuiltinTopicData *remote_participant_data); typedef void(* NDDS_Discovery_ParticipantPlugin_BeforeRemoteParticipantIgnoredCallback)( struct NDDS_Discovery_ParticipantPlugin *discovery_plugin, const NDDS_Discovery_ParticipantPluginHandle_t *plugin_handle, const DDS_BuiltinTopicKey_t *remote_participant_key); struct NDDS_Discovery_ParticipantPlugin { /*i \dref_Discovery_ParticipantPlugin_compare_cookie_values */ /* plugin-defined cookie comparison */ NDDS_Discovery_ParticipantPlugin_CookieValue_t_compare compare_cookie_values; /*i \dref_Discovery_ParticipantPlugin_on_after_plugin_registered */ NDDS_Discovery_ParticipantPlugin_AfterPluginRegisteredCallback on_after_plugin_registered; /*i \dref_Discovery_ParticipantPlugin_get_plugin_information */ NDDS_Discovery_ParticipantPlugin_GetPluginInformation get_plugin_information; /* local participant-related activities */ /*i \dref_Discovery_ParticipantPlugin_on_after_local_participant_enabled */ NDDS_Discovery_ParticipantPlugin_AfterLocalParticipantEnabledCallback on_after_local_participant_enabled; /*i \dref_Discovery_ParticipantPlugin_on_after_local_participant_changed */ NDDS_Discovery_ParticipantPlugin_AfterLocalParticipantQosChangedCallback on_after_local_participant_changed; /*i \dref_Discovery_ParticipantPlugin_on_before_local_participant_deleted */ NDDS_Discovery_ParticipantPlugin_BeforeLocalParticipantDeletedCallback on_before_local_participant_deleted; /* remote participant-related activities */ /*i \dref_Discovery_ParticipantPlugin_on_after_remote_participant_enabled */ NDDS_Discovery_ParticipantPlugin_AfterRemoteParticipantEnabledCallback on_after_remote_participant_enabled; /*i \dref_Discovery_ParticipantPlugin_on_before_remote_participant_ignored */ NDDS_Discovery_ParticipantPlugin_BeforeRemoteParticipantIgnoredCallback on_before_remote_participant_ignored; /*i \dref_Discovery_ParticipantPlugin_delete_plugin */ NDDS_Discovery_ParticipantPlugin_delete delete_plugin; }; /*i \dref_Discovery_ParticipantPlugin_INITIALIZER */ #define NDDS_Discovery_ParticipantPlugin_INITIALIZER \ { \ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL \ } struct NDDS_Discovery_EndpointPlugin; typedef struct NDDS_Discovery_EndpointPlugin* (* NDDS_Discovery_EndpointPlugin_create)( const struct DDS_PropertyQosPolicy * properties); typedef void (* NDDS_Discovery_EndpointPlugin_delete)( struct NDDS_Discovery_EndpointPlugin * discovery_plugin); typedef int(* NDDS_Discovery_EndpointPlugin_CookieValue_t_compare)( const struct NDDS_Discovery_CookieValue_t *left, const struct NDDS_Discovery_CookieValue_t *right); typedef void(* NDDS_Discovery_EndpointPlugin_AfterPluginRegisteredCallback)( struct NDDS_Discovery_EndpointPlugin *discovery_plugin, const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle); typedef void(* NDDS_Discovery_EndpointPlugin_GetPluginInformation)( struct NDDS_Discovery_EndpointPlugin *discovery_plugin, const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, DDS_UnsignedLong *dds_builtin_endpoints); typedef void(* NDDS_Discovery_EndpointPlugin_AfterRemoteParticipantEnabledCallback)( struct NDDS_Discovery_EndpointPlugin *discovery_plugin, const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const struct DDS_ParticipantBuiltinTopicData *remote_participant_data); typedef void(* NDDS_Discovery_EndpointPlugin_BeforeRemoteParticipantUnregisteredCallback)( struct NDDS_Discovery_EndpointPlugin *discovery_plugin, const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const DDS_BuiltinTopicKey_t *remote_participant_key, DDS_Boolean previous_reply, DDS_Boolean fully_uned); typedef void(* NDDS_Discovery_EndpointPlugin_BeforeRemoteParticipantDeletedCallback)( struct NDDS_Discovery_EndpointPlugin *discovery_plugin, const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const DDS_BuiltinTopicKey_t *remote_participant_key, DDS_Boolean previous_reply); typedef void(* NDDS_Discovery_EndpointPlugin_AfterLocalParticipantEnabledCallback)( struct NDDS_Discovery_EndpointPlugin *discovery_plugin, const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const struct DDS_ParticipantBuiltinTopicData *local_participant_data); typedef void(* NDDS_Discovery_EndpointPlugin_BeforeLocalParticipantDeletedCallback)( struct NDDS_Discovery_EndpointPlugin *discovery_plugin, const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const DDS_BuiltinTopicKey_t *local_participant_key); typedef void(* NDDS_Discovery_EndpointPlugin_AfterLocalDataWriterEnabledCallback)( struct NDDS_Discovery_EndpointPlugin *discovery_plugin, const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const struct DDS_PublicationBuiltinTopicData *local_datawriter_data); typedef void(* NDDS_Discovery_EndpointPlugin_AfterLocalDataWriterQosChangedCallback)( struct NDDS_Discovery_EndpointPlugin *discovery_plugin, const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const struct DDS_PublicationBuiltinTopicData *local_datawriter_data); typedef void(* NDDS_Discovery_EndpointPlugin_AfterLocalDataWriterDeletedCallback)( struct NDDS_Discovery_EndpointPlugin *discovery_plugin, const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const DDS_BuiltinTopicKey_t *local_datawriter_key); typedef void(* NDDS_Discovery_EndpointPlugin_AfterLocalDataReaderEnabledCallback)( struct NDDS_Discovery_EndpointPlugin *discovery_plugin, const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const struct DDS_SubscriptionBuiltinTopicData *local_datareader_data); typedef void(* NDDS_Discovery_EndpointPlugin_AfterLocalDataReaderQosChangedCallback)( struct NDDS_Discovery_EndpointPlugin *discovery_plugin, const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const struct DDS_SubscriptionBuiltinTopicData *local_datareader_data); typedef void(* NDDS_Discovery_EndpointPlugin_AfterLocalDataReaderDeletedCallback)( struct NDDS_Discovery_EndpointPlugin *discovery_plugin, const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const DDS_BuiltinTopicKey_t *local_datareader_key); typedef RTIBool(* NDDS_Discovery_EndpointPlugin_AfterRemoteEndpointTypeResolvedCallback)( struct NDDS_Discovery_EndpointPlugin *discovery_plugin, const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const DDS_BuiltinTopicKey_t *remote_endpoint_key); struct NDDS_Discovery_EndpointPlugin { /* plugin-defined cookie comparison */ /*i \dref_Discovery_EndpointPlugin_compare_cookie_values */ NDDS_Discovery_EndpointPlugin_CookieValue_t_compare compare_cookie_values; /* initial registration setup */ /*i \dref_Discovery_EndpointPlugin_on_after_plugin_registered */ NDDS_Discovery_EndpointPlugin_AfterPluginRegisteredCallback on_after_plugin_registered; /* remote participant-related activities (more later) */ /*i \dref_Discovery_EndpointPlugin_on_after_remote_participant_enabled */ NDDS_Discovery_EndpointPlugin_AfterRemoteParticipantEnabledCallback on_after_remote_participant_enabled; /*i \dref_Discovery_EndpointPlugin_on_before_remote_participant_unregistered */ NDDS_Discovery_EndpointPlugin_BeforeRemoteParticipantUnregisteredCallback on_before_remote_participant_unregistered; /*i \dref_Discovery_EndpointPlugin_on_before_remote_participant_deleted */ NDDS_Discovery_EndpointPlugin_BeforeRemoteParticipantDeletedCallback on_before_remote_participant_deleted; /* participant-related activities, similar to PDPs */ /*i \dref_Discovery_EndpointPlugin_get_plugin_information */ NDDS_Discovery_EndpointPlugin_GetPluginInformation get_plugin_information; /*i \dref_Discovery_EndpointPlugin_on_after_local_participant_enabled */ NDDS_Discovery_EndpointPlugin_AfterLocalParticipantEnabledCallback on_after_local_participant_enabled; /*i \dref_Discovery_EndpointPlugin_on_before_local_participant_deleted */ NDDS_Discovery_EndpointPlugin_BeforeLocalParticipantDeletedCallback on_before_local_participant_deleted; /* writer-related activities */ /*i \dref_Discovery_EndpointPlugin_on_after_local_datawriter_enabled */ NDDS_Discovery_EndpointPlugin_AfterLocalDataWriterEnabledCallback on_after_local_datawriter_enabled; /*i \dref_Discovery_EndpointPlugin_on_after_local_datawriter_changed */ NDDS_Discovery_EndpointPlugin_AfterLocalDataWriterQosChangedCallback on_after_local_datawriter_changed; /*i \dref_Discovery_EndpointPlugin_on_after_local_datawriter_deleted */ NDDS_Discovery_EndpointPlugin_AfterLocalDataWriterDeletedCallback on_after_local_datawriter_deleted; /* reader-related activities */ /*i \dref_Discovery_EndpointPlugin_on_after_local_datareader_enabled */ NDDS_Discovery_EndpointPlugin_AfterLocalDataReaderEnabledCallback on_after_local_datareader_enabled; /*i \dref_Discovery_EndpointPlugin_on_after_local_datareader_changed */ NDDS_Discovery_EndpointPlugin_AfterLocalDataReaderQosChangedCallback on_after_local_datareader_changed; /*i \dref_Discovery_EndpointPlugin_on_after_local_datareader_deleted */ NDDS_Discovery_EndpointPlugin_AfterLocalDataReaderDeletedCallback on_after_local_datareader_deleted; NDDS_Discovery_EndpointPlugin_AfterRemoteEndpointTypeResolvedCallback on_after_remote_endpoint_type_resolved; /*i \dref_Discovery_EndpointPlugin_delete_plugin */ NDDS_Discovery_EndpointPlugin_delete delete_plugin; }; /*i \dref_Discovery_EndpointPlugin_INITIALIZER */ #define NDDS_Discovery_EndpointPlugin_INITIALIZER { \ NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_ParticipantPluginSupport_assert_cookie( const NDDS_Discovery_ParticipantPluginHandle_t *plugin_handle, NDDS_Discovery_CookieHandle_t *cookie_handle, const struct NDDS_Discovery_CookieValue_t *cookie_value); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_ParticipantPluginSupport_remove_cookie( const NDDS_Discovery_ParticipantPluginHandle_t *plugin_handle, NDDS_Discovery_CookieHandle_t *cookie_handle); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_ParticipantPluginSupport_remove_cookie_by_value( const NDDS_Discovery_ParticipantPluginHandle_t *plugin_handle, const struct NDDS_Discovery_CookieValue_t *cookie_value); extern DDSCDllExport NDDS_Discovery_AssertResult_t NDDS_Discovery_ParticipantPluginSupport_assert_remote_participant( const NDDS_Discovery_ParticipantPluginHandle_t *plugin_handle, const struct DDS_ParticipantBuiltinTopicData *remote_participant_data, const struct NDDS_Discovery_SourceInformation_t *source_information, const NDDS_Discovery_CookieHandle_t *cookie_handle); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_ParticipantPluginSupport_remove_remote_participant( const NDDS_Discovery_ParticipantPluginHandle_t *plugin_handle, const struct NDDS_Discovery_ParticipantPlugin *discovered_by, const DDS_BuiltinTopicKey_t *remote_participant_key, const struct NDDS_Discovery_SourceInformation_t *source_information); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_ParticipantPluginSupport_unregister_remote_participant( const NDDS_Discovery_ParticipantPluginHandle_t *plugin_handle, const DDS_BuiltinTopicKey_t *remote_participant_key, const struct NDDS_Discovery_SourceInformation_t *source_information); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_ParticipantPluginSupport_remove_remote_participants_by_cookie( const NDDS_Discovery_ParticipantPluginHandle_t *plugin_handle, const NDDS_Discovery_CookieHandle_t *cookie_handle, const struct NDDS_Discovery_SourceInformation_t *source_information); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_ParticipantPluginSupport_unregister_remote_participants_by_cookie( const NDDS_Discovery_ParticipantPluginHandle_t *plugin_handle, const NDDS_Discovery_CookieHandle_t *cookie_handle, const struct NDDS_Discovery_SourceInformation_t *source_information); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_EndpointPluginSupport_assert_cookie( const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, NDDS_Discovery_CookieHandle_t *cookie_handle, const struct NDDS_Discovery_CookieValue_t *cookie_value); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_EndpointPluginSupport_remove_cookie( const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, NDDS_Discovery_CookieHandle_t *cookie_handle); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_EndpointPluginSupport_remove_cookie_by_value( const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const struct NDDS_Discovery_CookieValue_t *cookie_value); extern DDSCDllExport NDDS_Discovery_AssertResult_t NDDS_Discovery_EndpointPluginSupport_assert_remote_datawriter( const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const struct DDS_PublicationBuiltinTopicData *remote_datawriter_data, const struct NDDS_Discovery_SourceInformation_t *source_information, const NDDS_Discovery_CookieHandle_t *cookie_handle); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_EndpointPluginSupport_remove_remote_datawriter( const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const DDS_BuiltinTopicKey_t *remote_datawriter_key, const struct NDDS_Discovery_SourceInformation_t *source_information); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_EndpointPluginSupport_unregister_remote_datawriter( const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const DDS_BuiltinTopicKey_t *remote_datawriter_key, const struct NDDS_Discovery_SourceInformation_t *source_information); extern DDSCDllExport NDDS_Discovery_AssertResult_t NDDS_Discovery_EndpointPluginSupport_assert_remote_datareader( const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const struct DDS_SubscriptionBuiltinTopicData *remote_datareader_data, const struct NDDS_Discovery_SourceInformation_t *source_information, const NDDS_Discovery_CookieHandle_t *cookie_handle); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_EndpointPluginSupport_remove_remote_datareader( const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const DDS_BuiltinTopicKey_t *remote_datareader_key, const struct NDDS_Discovery_SourceInformation_t *source_information); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_EndpointPluginSupport_unregister_remote_datareader( const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const DDS_BuiltinTopicKey_t *remote_datareader_key, const struct NDDS_Discovery_SourceInformation_t *source_information); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_EndpointPluginSupport_unregister_remote_datawriters_by_cookie( const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const NDDS_Discovery_CookieHandle_t *cookie_handle, const struct NDDS_Discovery_SourceInformation_t *source_information); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_EndpointPluginSupport_unregister_remote_datareaders_by_cookie( const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const NDDS_Discovery_CookieHandle_t *cookie_handle, const struct NDDS_Discovery_SourceInformation_t *source_information); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_EndpointPluginSupport_remove_remote_datawriters_by_cookie( const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const NDDS_Discovery_CookieHandle_t *cookie_handle, const struct NDDS_Discovery_SourceInformation_t *source_information); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_EndpointPluginSupport_remove_remote_datareaders_by_cookie( const NDDS_Discovery_EndpointPluginHandle_t *plugin_handle, const NDDS_Discovery_CookieHandle_t *cookie_handle, const struct NDDS_Discovery_SourceInformation_t *source_information); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_Support_register_participant_plugin( DDS_DomainParticipant *disabled_participant, struct NDDS_Discovery_ParticipantPlugin *discovery_plugin); extern DDSCDllExport DDS_ReturnCode_t NDDS_Discovery_Support_register_endpoint_plugin( DDS_DomainParticipant *disabled_participant, struct NDDS_Discovery_EndpointPlugin *discovery_plugin); extern DDSCDllExport int NDDS_Discovery_Support_get_num_registered_endpoint_plugins( DDS_DomainParticipant *participant); #ifdef __cplusplus } /* extern "C" */ #endif #endif /* ndds_discovery_c_h */