4.6. Application Generation

4.6.1. Introduction

RTI Connext DDS Micro’s Application Generation feature simplifies and accelerates application development by enabling the creation of DDS Entities by compiling an XML configuration file, linking the result to an application, and calling a single API. Once created, all Entities can be retrieved from the application code using standard “lookup_by_name” operations so that they can be used to read and write data. C or C++ source code is generated from the XML configuration and compiled with the application.

This user-guide explains how to use this feature in an application and is organized as follows:

4.6.2. Overview

The Connext DDS Micro Application Generation feature enables the creation of all DDS Entities needed in an application and the registration of the factories used in the application. Once created, all Entities can be retrieved from application code using standard “lookup_by_name” operations so that they can be used to read and write data. UDP transport, DPDE (Dynamic Participant Dynamic Endpoint) and DPSE (Dynamic Participant Static Endpoint) discovery configuration can also be configured as needed.

C source code is generated from the XML configuration and has to be compiled with the application. This is needed because Connext DDS Micro does not include an XML parser (this would significantly increase code size and amount of memory needed). The generated C source code contains the same information as the XML configuration file. The generated C source code can be used from both the C API Reference and C++ API Reference.

The Connext DDS Micro Application Generation is enabled by default in this release when compiling with rtime-make. However, future releases may disable the feature by default. Thus, it is advised to always compile with the Connext DDS Micro Application Generation feature enabled (-DRTIME_DDS_ENABLE_APPGEN=1 to CMake).

4.6.2.1. Important Points

Applications can create a RTI Connext DDS Micro Entity from a DomainParticipant configuration described in the XML Configuration file. All the Entities defined by such DomainParticipant configuration are created automatically as part of the creation. In addition, multiple DomainParticipant configurations may be defined within a single XML configuration file.

All the Entities created from a DomainParticipant configuration are automatically assigned an entity name. Entities can be retrieved via “lookup_by_name” operations specifying their name. Each Entity stores its own name in the QoS policies of the Entity so that they can be retrieved locally (via a lookup) and communicated via discovery.

A configuration file is not tied to the application that uses it. Different applications may run using the same configuration file. A single file may define multiple DomainParticipant configurations. Normally, a single application will instantiate only one Connext DDS Micro, but a Connext DDS Micro application can instantiate as many as needed.

Changes in the XML configuration file require to generate C/C++ source code again and recompile the application.

4.6.3. Names Assigned to Entities

Each Entity configured in the configuration is given a name. This name is used to retrieve them at run-time using the RTI Connext DDS Micro API.

In the context of the configuration we should distinguish between two names:

  • Configuration name: The name of a specific Entity’s configuration. It is given by the name attribute of the corresponding element.
  • Entity name in the Entity’s QoS: The Entity name in the Entity’s QoS.

At runtime, the Entity will be created using the Entity name in the Entity’s QoS; the configuration name will be used if this is an empty string.

The attribute multiplicity indicates that a set of Entities should be created from the same configuration. As each Entity must have a unique name, the system will automatically append a number to the Entity name in the Entity’s QoS (or, if it is an empty string, the configuration name) to obtain the Entity name. For example, if we specified a multiplicity of “N”, then for each index “i” between 0 and N-1, the system will assign Entity names according to the table below:

Entity Name Index: i
“configuration_name” 0
“configuration_name#i” [1,N-1]

That is, the Entity name followed by the token “#” and an index.

4.6.4. Create a Domain Participant

To create a DomainParticipant from a configuration profile, use API create_participant_from_config(), which receives the configuration name and creates all the Entities defined by that configuration. This API is available in RTI Connext DDS Micro for compatibility with RTI Connext DDS Professional.

4.6.5. Retrieving Entities

After creation, you can retrieve the defined Entities by using the lookup_by_name() operations available in the C API Reference and C++ API Reference.

4.6.6. Interoperability

Applications created using this feature can inter-operate with other RTI Connext DDS Micro applications which are not created using this feature and with RTI Connext DDS Professional applications.

4.6.7. Example Code

This section contains an example to instantiate an application using Connext DDS Micro Application Generation.

4.6.7.1. Create the application

Create an application using Connext DDS Micro Application Generation. Note that only the Connext DDS Micro Application Generation factory needs to be registered; all other factories, such as UDP transport, DPDE, and DPSE discovery can be defined in the Connext DDS Micro Application Generation configuration, and are automatically registered by Connext DDS Micro Application Generation.

DDS_ReturnCode_t retcode;
DDS_DomainParticipantFactory *factory = NULL;
RT_Registry_T *registry = NULL;
struct APPGEN_FactoryProperty model_xml = APPGEN_FactoryProperty_INITIALIZER;
DDS_DomainParticipant *participant;
DDS_DataWriter *datawriter;
struct DDS_DataWriterListener dw_listener =
    DDS_DataWriterListener_INITIALIZER;
factory = DDS_DomainParticipantFactory_get_instance();
registry = DDS_DomainParticipantFactory_get_registry(factory);
/* This pointer must be valid as long as the Micro
   Application Generation plugin is registered
 */
model_xml._model = APPGEN_get_library_seq();
/* Register factory used to create participants from config */
if (!APPGEN_Factory_register(registry, &model_xml))
{
    printf("failed to register Application Generation\n");
    goto error;
}
/* create participant from config */
participant = DDS_DomainParticipantFactory_create_participant_from_config(
                  factory, "UnitTestAppLibrary::UnitTestPublisherApp");
if (participant == NULL)
{
    printf("failed to create participant\n");
    goto error;
}
datawriter = DDS_DomainParticipant_lookup_datawriter_by_name(
                 participant, "TestPublisher1::Test1DW");
if (datawriter == NULL)
{
    printf("failed to lookup datawriter\n");
    goto error;
}
dw_listener.on_publication_matched = HelloWorldPublisher_on_publication_matched;
retcode = DDS_DataWriter_set_listener(datawriter, &dw_listener,
                                      DDS_PUBLICATION_MATCHED_STATUS);
if (retcode != DDS_RETCODE_OK)
{
    printf("failed to set writer listener\n");
    goto done;
}
retcode = DDS_Entity_enable(DDS_DomainParticipant_as_entity(participant));
if (retcode != DDS_RETCODE_OK)
{
    printf("failed to enable entity\n");
}
hw_datawriter = HelloWorldDataWriter_narrow(datawriter);
/* Using variable hw_datawriter call HelloWorldDataWriter_write()
   to write samples.
 */

4.6.7.2. Delete the application

Connext DDS Micro Application Generation does not include any new API that can be used to delete an application. Instead, the already existing APIs can be used.

DDS_ReturnCode_t retcode;
RT_Registry_T *registry = NULL;
DDS_DomainParticipantFactory *factory = NULL;
factory = DDS_DomainParticipantFactory_get_instance();
registry = DDS_DomainParticipantFactory_get_registry(factory);
retcode = DDS_DomainParticipant_delete_contained_entities(participant);
if (retcode != DDS_RETCODE_OK)
{
    printf("failed to delete contained entities: %d\n", retcode);
    return;
}
retcode = DDS_DomainParticipantFactory_delete_participant(participant);
if (retcode != DDS_RETCODE_OK)
{
    printf("failed to delete participant: %d\n", retcode);
    return;
}
if (!APPGEN_Factory_unregister(registry, NULL))
{
    printf("failed to unregister Application Generation\n");
}
retcode = DDS_DomainParticipantFactory_finalize_instance();
if (retcode != DDS_RETCODE_OK)
{
    printf("failed to finalize domain participant factory: %d\n", retcode);
    return;
}

4.6.8. Example Configuration

This section contains an example configuration. The example code configuration has been generated from the example XML configuration files.

The example configuration defines one library named “HelloWorldAppLibrary”. This library defines four RTI Connext DDS Micro applications: one with a publisher and one with a subscriber, both using DPDE discovery, and one with a publisher and one with a subscriber, both using DPSE discovery. Applications using DPDE discovery are compatible and are able to communicate. Applications using DPSE discovery are compatible and are able to communicate.

4.6.8.1. Domain Participant “HelloWorldDPDEPubDP”

This application defines a publisher which uses DPDE discovery.

The application has one named “HelloWorldDPDEPubDP”, one named “HelloWorldDPDEPub”, and one named “HelloWorldDPDEDW” which uses topic name “Example HelloWorld”. The application registers one type with name “HelloWorld” and defines one with name “Example HelloWorld” which uses the type “HelloWorld”.

4.6.8.2. Domain Participant “HelloWorldDPDESubDP”

This application defines a subscriber which uses DPDE discovery.

The application has one named “HelloWorldDPDESubDP”, one named “HelloWorldDPDESub”, and one named “HelloWorldDPDEDR” which uses topic name “Example HelloWorld”. The application registers one type with name “HelloWorld” and defines one with name “Example HelloWorld” which uses the type “HelloWorld”.

4.6.8.3. Domain Participant “HelloWorldDPSEPubDP”

This application defines a publisher which uses DPSE discovery.

The application has one named “HelloWorldDPSEPubDP”, one named “HelloWorldDPSEPub”, and one named “HelloWorldDPSEDW” which uses topic name “Example HelloWorld” and has RTPS id 100. The application registers one type with name “HelloWorld” and defines one with name “Example HelloWorld” which uses type “HelloWorld”.

The application asserts one remote participant named “HelloWorldDPSESubDP” and one remote subscription with ID 200, type name “HelloWorld”, and topic name “Example HelloWorld”.

4.6.8.4. Domain Participant “HelloWorldDPSESubDP”

This application defines a subscriber which uses DPSE discovery.

The application has one named “HelloWorldDPSESubDP”, one named “HelloWorldDPSESub”, and one named “HelloWorldDPSEDR” which uses topic name “Example HelloWorld” and has RTPS id 200. The application registers one type with name “HelloWorld” and defines one with name “Example HelloWorld” which uses the type “HelloWorld”.

The application asserts one remote participant named “HelloWorldDPSEPubDP” and one remote subscription with ID 100, type name “HelloWorld”, and topic name “Example HelloWorld”.

4.6.8.5. Configuration Files

Example Connext DDS Micro Application Generation configuration file HelloWorld.xml:

<?xml version="1.0"?>
<dds xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="http://community.rti.com/schema/6.0.0/rti_dds_profiles.xsd">
    <!-- Type Definition -->
    <types>
        <const name="MAX_NAME_LEN" type="long" value="64"/>
        <const name="MAX_MSG_LEN"  type="long" value="128"/>
        <struct name="HelloWorld">
            <member name="sender"  type="string"  stringMaxLength="MAX_NAME_LEN"  key="true"/>
            <member name="message" type="string"  stringMaxLength="MAX_MSG_LEN"/>
            <member name="count"   type="long"/>
        </struct>
    </types>
    <!-- Domain Library -->
    <domain_library name="HelloWorldLibrary">
        <domain name="HelloWorldDomain" domain_id="0">
            <register_type name="HelloWorldType" type_ref="HelloWorld">
            </register_type>
            <topic name="HelloWorldTopic" register_type_ref="HelloWorldType">
                <registered_name>HelloWorldTopic</registered_name>
            </topic>
        </domain>
    </domain_library>
    <!-- Participant Library -->
    <domain_participant_library name="HelloWorldAppLibrary">
        <domain_participant name="HelloWorldDPDEPubDP"
            domain_ref="HelloWorldLibrary::HelloWorldDomain">
            <publisher name="HelloWorldDPDEPub">
                <data_writer topic_ref="HelloWorldTopic" name="HelloWorldDPDEDW">
                    <datawriter_qos base_name="QosLibrary::DPDEProfile"/>
                </data_writer>
            </publisher>
            <participant_qos base_name="QosLibrary::DPDEProfile"/>
        </domain_participant>
        <domain_participant name="HelloWorldDPDESubDP"
            domain_ref="HelloWorldLibrary::HelloWorldDomain">
            <subscriber name="HelloWorldDPDESub">
                <data_reader topic_ref="HelloWorldTopic" name="HelloWorldDPDEDR">
                    <datareader_qos base_name="QosLibrary::DPDEProfile"/>
                </data_reader>
            </subscriber>
            <participant_qos base_name="QosLibrary::DPDEProfile"/>
        </domain_participant>
        <domain_participant name="HelloWorldDPSEPubDP"
            domain_ref="HelloWorldLibrary::HelloWorldDomain">
            <publisher name="HelloWorldDPSEPub">
                <data_writer topic_ref="HelloWorldTopic" name="HelloWorldDPSEDW">
                    <datawriter_qos base_name="QosLibrary::DPSEProfile"/>
                </data_writer>
            </publisher>
            <participant_qos base_name="QosLibrary::DPSEProfile"/>
        </domain_participant>
        <domain_participant name="HelloWorldDPSESubDP"
            domain_ref="HelloWorldLibrary::HelloWorldDomain">
            <subscriber name="HelloWorldDPSESub">
                <data_reader topic_ref="HelloWorldTopic" name="HelloWorldDPSEDR">
                    <datareader_qos base_name="QosLibrary::DPSEProfile"/>
                </data_reader>
            </subscriber>
            <participant_qos base_name="QosLibrary::DPSEProfile"/>
        </domain_participant>
    </domain_participant_library>
</dds>

Example QoS configuration file HelloWorldQos.xml:

<?xml version="1.0"?>
<dds xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="http://community.rti.com/schema/6.0.0/rti_dds_profiles.xsd">
    <qos_library name="QosLibrary">
        <qos_profile name="DefaultProfile" is_default_participant_factory_profile="true">
            <!-- Participant Factory Qos -->
            <participant_factory_qos>
                <entity_factory>
                    <autoenable_created_entities>false</autoenable_created_entities>
                </entity_factory>
            </participant_factory_qos>
            <!-- Participant Qos -->
            <participant_qos>
                <discovery>
                    <accept_unknown_peers>false</accept_unknown_peers>
                    <initial_peers>
                        <element>127.0.0.1</element>
                        <element>239.255.0.1</element>
                    </initial_peers>
                    <enabled_transports>
                        <element>udpv4</element>
                    </enabled_transports>
                    <multicast_receive_addresses>
                        <element>udpv4://127.0.0.1</element>
                        <element>udpv4://239.255.0.1</element>
                    </multicast_receive_addresses>
                </discovery>
                <default_unicast>
                    <value>
                        <element>
                            <transports>
                                <element>udpv4</element>
                            </transports>
                        </element>
                    </value>
                </default_unicast>
                <transport_builtin>
                    <mask>UDPv4</mask>
                </transport_builtin>
                <resource_limits>
                    <local_writer_allocation>
                        <max_count>1</max_count>
                    </local_writer_allocation>
                    <local_reader_allocation>
                        <max_count>1</max_count>
                        </local_reader_allocation>
                    <local_publisher_allocation>
                        <max_count>1</max_count>
                    </local_publisher_allocation>
                    <local_subscriber_allocation>
                        <max_count>1</max_count>
                        </local_subscriber_allocation>
                    <local_topic_allocation>
                        <max_count>1</max_count>
                        </local_topic_allocation>
                    <local_type_allocation>
                        <max_count>1</max_count>
                        </local_type_allocation>
                    <remote_participant_allocation>
                        <max_count>8</max_count>
                        </remote_participant_allocation>
                    <remote_writer_allocation>
                        <max_count>8</max_count>
                    </remote_writer_allocation>
                    <remote_reader_allocation>
                        <max_count>8</max_count>
                    </remote_reader_allocation>
                    <max_receive_ports>32</max_receive_ports>
                    <max_destination_ports>32</max_destination_ports>
                </resource_limits>
            </participant_qos>
            <!-- DataWriter Qos -->
            <datawriter_qos>
                <history>
                    <depth>32</depth>
                </history>
                <resource_limits>
                    <max_instances>2</max_instances>
                    <max_samples>64</max_samples>
                    <max_samples_per_instance>32</max_samples_per_instance>
                </resource_limits>
                <reliability>
                    <kind>RELIABLE_RELIABILITY_QOS</kind>
                </reliability>
                <protocol>
                    <rtps_reliable_writer>
                        <heartbeat_period>
                            <nanosec>250000000</nanosec>
                            <sec>0</sec>
                        </heartbeat_period>
                    </rtps_reliable_writer>
                </protocol>
                <!-- transports -->
                <unicast>
                    <value>
                        <element>
                            <transports>
                                <element>udpv4</element>
                            </transports>
                        </element>
                    </value>
                </unicast>
            </datawriter_qos>
            <!-- DataReader Qos -->
            <datareader_qos>
                <history>
                    <depth>32</depth>
                </history>
                <resource_limits>
                    <max_instances>2</max_instances>
                    <max_samples>64</max_samples>
                    <max_samples_per_instance>32</max_samples_per_instance>
                </resource_limits>
                <reliability>
                    <kind>RELIABLE_RELIABILITY_QOS</kind>
                </reliability>
                <reader_resource_limits>
                    <max_remote_writers>10</max_remote_writers>
                    <max_remote_writers_per_instance>10</max_remote_writers_per_instance>
                </reader_resource_limits>
                <!-- transports -->
                <unicast>
                    <value>
                        <element>
                            <transports>
                                <element>udpv4</element>
                            </transports>
                        </element>
                    </value>
                </unicast>
                <multicast>
                    <value>
                        <element>
                            <receive_address>127.0.0.1</receive_address>
                            <transports>
                                <element>udpv4</element>
                            </transports>
                        </element>
                    </value>
                </multicast>
            </datareader_qos>
        </qos_profile>
        <qos_profile name="DPDEProfile" base_name="DefaultProfile">
            <participant_qos>
                <discovery_config>
                    <builtin_discovery_plugins>SDP</builtin_discovery_plugins>
                </discovery_config>
            </participant_qos>
        </qos_profile>
        <qos_profile name="DPSEProfile" base_name="DefaultProfile">
            <participant_qos>
                <discovery_config>
                    <builtin_discovery_plugins>DPSE</builtin_discovery_plugins>
                </discovery_config>
            </participant_qos>
        </qos_profile>
    </qos_library>
</dds>

4.6.8.6. Generated source files

Example generated header configuration HelloWorldAppgen.h:

/*
WARNING: THIS FILE IS AUTO-GENERATED. DO NOT MODIFY.
This file was generated from HelloWorld.xml using "rtiddsmag."
The rtiddsmag tool is part of the RTI Connext distribution.
For more information, type 'rtiddsmag -help' at a command shell
or consult the RTI Connext manual.
*/
#include "HelloWorldPlugin.h"
#include "app_gen/app_gen.h"
#include "netio/netio_udp.h"
#include "disc_dpde/disc_dpde_discovery_plugin.h"
#include "disc_dpse/disc_dpse_dpsediscovery.h"
#define RTI_APP_GEN___udpv4__HelloWorldAppLibrary_HelloWorldDPDEPubDP_udp1 \
{ \
    NETIO_InterfaceFactoryProperty_INITIALIZER, \
    REDA_StringSeq_INITIALIZER, /* allow_interface */ \
    REDA_StringSeq_INITIALIZER, /* deny_interface */ \
    262144, /* max_send_buffer_size */ \
    262144, /* max_receive_buffer_size */ \
    8192, /* max_message_size */ \
    -1, /* max_send_message_size */ \
    1, /* multicast_ttl */ \
    UDP_NAT_INITIALIZER \
    UDP_InterfaceTableEntrySeq_INITIALIZER, /* if_table */ \
    NULL, /* multicast_interface */ \
    DDS_BOOLEAN_TRUE, /* is_default_interface */ \
    DDS_BOOLEAN_FALSE, /* disable_auto_interface_config */ \
    {   /* recv_thread */ \
        OSAPI_THREAD_USE_OSDEFAULT_STACKSIZE, /* stack_size */ \
        OSAPI_THREAD_PRIORITY_NORMAL, /* priority */ \
        OSAPI_THREAD_DEFAULT_OPTIONS /* options */ \
    },  \
    RTI_FALSE /* transform_locator_kind */ \
    UDP_TRANSFORMS_INITIALIZER \
}
/* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorldQos.xml, lineNumber=145, columnNumber=35 */
#define RTI_APP_GEN___dpde__HelloWorldAppLibrary_HelloWorldDPDEPubDP_dpde1 \
{ \
    RT_ComponentFactoryProperty_INITIALIZER, /* _parent */ \
    {   /*participant_liveliness_assert_period */ \
        30L, /* sec */ \
        0L /* nanosec */ \
    }, \
    {   /*participant_liveliness_lease_duration */ \
        100L, /* sec */ \
        0L /* nanosec */ \
    }, \
    5, /* initial_participant_announcements */ \
    {   /*initial_participant_announcement_period */ \
        1L, /* sec */ \
        0L /* nanosec */ \
    }, \
    DDS_BOOLEAN_FALSE, /* cache_serialized_samples */ \
    DDS_LENGTH_AUTO, /* max_participant_locators */ \
    4, /* max_locators_per_discovered_participant */ \
    8, /* max_samples_per_builtin_endpoint_reader */ \
    DDS_LENGTH_UNLIMITED, /* builtin_writer_max_heartbeat_retries */ \
    {   /*builtin_writer_heartbeat_period */ \
        0L, /* sec */ \
        100000000L /* nanosec */ \
    }, \
    1L /* builtin_writer_heartbeats_per_max_samples */ \
    DDS_PARTICIPANT_MESSAGE_READER_RELIABILITY_KIND_INITIALIZER \
}
/* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorldQos.xml, lineNumber=152, columnNumber=35 */
#define RTI_APP_GEN___dpse__HelloWorldAppLibrary_HelloWorldDPSEPubDP_dpse1 \
{ \
    RT_ComponentFactoryProperty_INITIALIZER, /* _parent */ \
    {   /*participant_liveliness_assert_period */ \
        30L, /* sec */ \
        0L /* nanosec */ \
    }, \
    {   /*participant_liveliness_lease_duration */ \
        100L, /* sec */ \
        0L /* nanosec */ \
    }, \
    5, /* initial_participant_announcements */ \
    {   /*initial_participant_announcement_period */ \
        1L, /* sec */ \
        0L /* nanosec */ \
    }, \
    DDS_LENGTH_AUTO, /* max_participant_locators */ \
    4 /* max_locators_per_discovered_participant */ \
    DDS_PARTICIPANT_MESSAGE_READER_RELIABILITY_KIND_INITIALIZER \
}
/* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorldQos.xml, lineNumber=7, columnNumber=38 */
#define RTI_APP_GEN___DPF_QOS_QosLibrary_DefaultProfile \
{ \
    {   /* entity_factory */ \
        DDS_BOOLEAN_FALSE /* autoenable_created_entities */ \
    }, \
    DDS_SYSTEM_RESOURCE_LIMITS_QOS_POLICY_DEFAULT \
}
/* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=38, columnNumber=67 */
extern const char *const HelloWorldAppLibrary_HelloWorldDPDEPubDP_initial_peers[2];
extern const char *const HelloWorldAppLibrary_HelloWorldDPDEPubDP_discovery_enabled_transports[3];
extern const char *const HelloWorldAppLibrary_HelloWorldDPDEPubDP_transport_enabled_transports[1];
extern const char *const HelloWorldAppLibrary_HelloWorldDPDEPubDP_user_traffic_enabled_transports[1];
#define RTI_APP_GEN___DP_QOS_HelloWorldAppLibrary_HelloWorldDPDEPubDP \
{ \
    DDS_ENTITY_FACTORY_QOS_POLICY_DEFAULT, \
    {   /* discovery */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPDEPubDP_initial_peers, 2, 2), /* initial_peers */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPDEPubDP_discovery_enabled_transports, 3, 3), /* enabled_transports */ \
        { \
            { { "dpde1" } }, /* RT_ComponentFactoryId_INITIALIZER */ \
            NDDS_Discovery_Property_INITIALIZER \
        }, /* discovery_component */ \
        DDS_BOOLEAN_FALSE /* accept_unknown_peers */ \
    }, \
    {   /* resource_limits  */ \
        1L, /* local_writer_allocation */ \
        1L, /* local_reader_allocation */ \
        1L, /* local_publisher_allocation */ \
        1L, /* local_subscriber_allocation */ \
        1L, /* local_topic_allocation */ \
        1L, /* local_type_allocation */ \
        8L, /* remote_participant_allocation */ \
        8L, /* remote_writer_allocation */ \
        8L, /* remote_reader_allocation */ \
        32L, /* matching_writer_reader_pair_allocation */ \
        32L, /* matching_reader_writer_pair_allocation */ \
        32L, /* max_receive_ports */ \
        32L, /* max_destination_ports */ \
        65536, /* unbound_data_buffer_size */ \
        500UL /* shmem_ref_transfer_mode_max_segments */ \
    }, \
    DDS_ENTITY_NAME_QOS_POLICY_DEFAULT, \
    DDS_WIRE_PROTOCOL_QOS_POLICY_DEFAULT, \
    {   /* transports */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPDEPubDP_transport_enabled_transports, 1, 1) /* enabled_transports */ \
    }, \
    {   /* user_traffic */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPDEPubDP_user_traffic_enabled_transports, 1, 1) /* enabled_transports */ \
    }, \
    DDS_TRUST_QOS_POLICY_DEFAULT, \
    DDS_PROPERTY_QOS_POLICY_DEFAULT \
}
/* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=35, columnNumber=74 */
extern const char *const HelloWorldAppLibrary_HelloWorldDPDEPubDP_HelloWorldDPDEPub_HelloWorldDPDEDW_transport_enabled_transports[1];
#define RTI_APP_GEN___DW_QOS_HelloWorldAppLibrary_HelloWorldDPDEPubDP_HelloWorldDPDEPub_HelloWorldDPDEDW \
{ \
    DDS_DEADLINE_QOS_POLICY_DEFAULT, \
    DDS_LIVELINESS_QOS_POLICY_DEFAULT, \
    {   /* history */ \
        DDS_KEEP_LAST_HISTORY_QOS, /* kind */ \
        32L /* depth */ \
    }, \
    {   /* resource_limits */ \
        64L, /* max_samples */ \
        2L, /* max_instances */ \
        32L /* max_samples_per_instance */ \
    }, \
    DDS_OWNERSHIP_QOS_POLICY_DEFAULT, \
    DDS_OWNERSHIP_STRENGTH_QOS_POLICY_DEFAULT, \
    DDS_LATENCY_BUDGET_QOS_POLICY_DEFAULT, \
    {   /* reliability */ \
        DDS_RELIABLE_RELIABILITY_QOS, /* kind */ \
        {   /* max_blocking_time */ \
            0L, /* sec */ \
            100000000L /* nanosec */ \
        } \
    }, \
    DDS_DURABILITY_QOS_POLICY_DEFAULT, \
    DDS_DESTINATION_ORDER_QOS_POLICY_DEFAULT, \
    DDS_TRANSPORT_ENCAPSULATION_QOS_POLICY_DEFAULT, \
    DDS_DATA_REPRESENTATION_QOS_POLICY_DEFAULT, \
    {   /* protocol */ \
        DDS_RTPS_AUTO_ID, /* rtps_object_id */ \
        { /* rtps_reliable_writer */ \
            {   /* heartbeat_period */ \
                0L, /* sec */ \
                250000000L /* nanosec */ \
            },  \
            1L, /* heartbeats_per_max_samples */ \
            DDS_LENGTH_UNLIMITED, /* max_send_window */ \
            DDS_LENGTH_UNLIMITED, /* max_heartbeat_retries */ \
            {   /* first_write_sequence_number */ \
                0, /* high */ \
                1  /* low */ \
            } \
        }, \
        DDS_BOOLEAN_TRUE /* serialize_on_write */ \
    }, \
    DDS_TYPESUPPORT_QOS_POLICY_DEFAULT, \
    {   /* transports */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPDEPubDP_HelloWorldDPDEPub_HelloWorldDPDEDW_transport_enabled_transports, 1, 1) /* enabled_transports */ \
    }, \
    RTI_MANAGEMENT_QOS_POLICY_DEFAULT, \
    DDS_DATAWRITERRESOURCE_LIMITS_QOS_POLICY_DEFAULT, \
    DDS_PUBLISH_MODE_QOS_POLICY_DEFAULT, \
    DDS_DATAWRITERQOS_TRUST_INITIALIZER \
    DDS_DATAWRITERQOS_APPGEN_INITIALIZER \
    NULL, \
    DDS_DataWriterTransferModeQosPolicy_INITIALIZER \
}
/* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=48, columnNumber=67 */
extern const char *const HelloWorldAppLibrary_HelloWorldDPDESubDP_initial_peers[2];
extern const char *const HelloWorldAppLibrary_HelloWorldDPDESubDP_discovery_enabled_transports[3];
extern const char *const HelloWorldAppLibrary_HelloWorldDPDESubDP_transport_enabled_transports[1];
extern const char *const HelloWorldAppLibrary_HelloWorldDPDESubDP_user_traffic_enabled_transports[1];
#define RTI_APP_GEN___DP_QOS_HelloWorldAppLibrary_HelloWorldDPDESubDP \
{ \
    DDS_ENTITY_FACTORY_QOS_POLICY_DEFAULT, \
    {   /* discovery */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPDESubDP_initial_peers, 2, 2), /* initial_peers */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPDESubDP_discovery_enabled_transports, 3, 3), /* enabled_transports */ \
        { \
            { { "dpde1" } }, /* RT_ComponentFactoryId_INITIALIZER */ \
            NDDS_Discovery_Property_INITIALIZER \
        }, /* discovery_component */ \
        DDS_BOOLEAN_FALSE /* accept_unknown_peers */ \
    }, \
    {   /* resource_limits  */ \
        1L, /* local_writer_allocation */ \
        1L, /* local_reader_allocation */ \
        1L, /* local_publisher_allocation */ \
        1L, /* local_subscriber_allocation */ \
        1L, /* local_topic_allocation */ \
        1L, /* local_type_allocation */ \
        8L, /* remote_participant_allocation */ \
        8L, /* remote_writer_allocation */ \
        8L, /* remote_reader_allocation */ \
        32L, /* matching_writer_reader_pair_allocation */ \
        32L, /* matching_reader_writer_pair_allocation */ \
        32L, /* max_receive_ports */ \
        32L, /* max_destination_ports */ \
        65536, /* unbound_data_buffer_size */ \
        500UL /* shmem_ref_transfer_mode_max_segments */ \
    }, \
    DDS_ENTITY_NAME_QOS_POLICY_DEFAULT, \
    DDS_WIRE_PROTOCOL_QOS_POLICY_DEFAULT, \
    {   /* transports */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPDESubDP_transport_enabled_transports, 1, 1) /* enabled_transports */ \
    }, \
    {   /* user_traffic */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPDESubDP_user_traffic_enabled_transports, 1, 1) /* enabled_transports */ \
    }, \
    DDS_TRUST_QOS_POLICY_DEFAULT, \
    DDS_PROPERTY_QOS_POLICY_DEFAULT \
}
/* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=45, columnNumber=74 */
extern const char *const HelloWorldAppLibrary_HelloWorldDPDESubDP_HelloWorldDPDESub_HelloWorldDPDEDR_transport_enabled_transports[2];
#define RTI_APP_GEN___DR_QOS_HelloWorldAppLibrary_HelloWorldDPDESubDP_HelloWorldDPDESub_HelloWorldDPDEDR \
{ \
    DDS_DEADLINE_QOS_POLICY_DEFAULT, \
    DDS_LIVELINESS_QOS_POLICY_DEFAULT, \
    {   /* history */ \
        DDS_KEEP_LAST_HISTORY_QOS, /* kind */ \
        32L /* depth */ \
    }, \
    {   /* resource_limits */ \
        64L, /* max_samples */ \
        2L, /* max_instances */ \
        32L /* max_samples_per_instance */ \
    }, \
    DDS_OWNERSHIP_QOS_POLICY_DEFAULT, \
    DDS_LATENCY_BUDGET_QOS_POLICY_DEFAULT, \
    {   /* reliability */ \
        DDS_RELIABLE_RELIABILITY_QOS, /* kind */ \
        {   /* max_blocking_time */ \
            0L, /* sec */ \
            0L /* nanosec */ \
        } \
    }, \
    DDS_DURABILITY_QOS_POLICY_DEFAULT, \
    DDS_DESTINATION_ORDER_QOS_POLICY_DEFAULT, \
    DDS_TRANSPORT_ENCAPSULATION_QOS_POLICY_DEFAULT, \
    DDS_DATA_REPRESENTATION_QOS_POLICY_DEFAULT, \
    DDS_TYPESUPPORT_QOS_POLICY_DEFAULT, \
    DDS_DATA_READER_PROTOCOL_QOS_POLICY_DEFAULT, \
    {   /* transports */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPDESubDP_HelloWorldDPDESub_HelloWorldDPDEDR_transport_enabled_transports, 2, 2) /* enabled_transports */ \
    }, \
    {   /* reader_resource_limits */ \
        10L, /* max_remote_writers */ \
        10L, /* max_remote_writers_per_instance */ \
        1L, /* max_samples_per_remote_writer */ \
        1L, /* max_outstanding_reads */ \
        DDS_NO_INSTANCE_REPLACEMENT_QOS, /* instance_replacement */ \
        4L, /* max_routes_per_writer */ \
        DDS_MAX_AUTO, /* max_fragmented_samples */ \
        DDS_MAX_AUTO, /* max_fragmented_samples_per_remote_writer */ \
        DDS_SIZE_AUTO /* shmem_ref_transfer_mode_attached_segment_allocation */ \
    }, \
    RTI_MANAGEMENT_QOS_POLICY_DEFAULT, \
    DDS_DATAREADERQOS_TRUST_INITIALIZER \
    DDS_DATAREADERQOS_APPGEN_INITIALIZER \
    NULL \
}
/* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=58, columnNumber=67 */
extern const char *const HelloWorldAppLibrary_HelloWorldDPSEPubDP_initial_peers[2];
extern const char *const HelloWorldAppLibrary_HelloWorldDPSEPubDP_discovery_enabled_transports[3];
extern const char *const HelloWorldAppLibrary_HelloWorldDPSEPubDP_transport_enabled_transports[1];
extern const char *const HelloWorldAppLibrary_HelloWorldDPSEPubDP_user_traffic_enabled_transports[1];
#define RTI_APP_GEN___DP_QOS_HelloWorldAppLibrary_HelloWorldDPSEPubDP \
{ \
    DDS_ENTITY_FACTORY_QOS_POLICY_DEFAULT, \
    {   /* discovery */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPSEPubDP_initial_peers, 2, 2), /* initial_peers */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPSEPubDP_discovery_enabled_transports, 3, 3), /* enabled_transports */ \
        { \
            { { "dpse1" } }, /* RT_ComponentFactoryId_INITIALIZER */ \
            NDDS_Discovery_Property_INITIALIZER \
        }, /* discovery_component */ \
        DDS_BOOLEAN_FALSE /* accept_unknown_peers */ \
    }, \
    {   /* resource_limits  */ \
        1L, /* local_writer_allocation */ \
        1L, /* local_reader_allocation */ \
        1L, /* local_publisher_allocation */ \
        1L, /* local_subscriber_allocation */ \
        1L, /* local_topic_allocation */ \
        1L, /* local_type_allocation */ \
        8L, /* remote_participant_allocation */ \
        8L, /* remote_writer_allocation */ \
        8L, /* remote_reader_allocation */ \
        32L, /* matching_writer_reader_pair_allocation */ \
        32L, /* matching_reader_writer_pair_allocation */ \
        32L, /* max_receive_ports */ \
        32L, /* max_destination_ports */ \
        65536, /* unbound_data_buffer_size */ \
        500UL /* shmem_ref_transfer_mode_max_segments */ \
    }, \
    DDS_ENTITY_NAME_QOS_POLICY_DEFAULT, \
    DDS_WIRE_PROTOCOL_QOS_POLICY_DEFAULT, \
    {   /* transports */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPSEPubDP_transport_enabled_transports, 1, 1) /* enabled_transports */ \
    }, \
    {   /* user_traffic */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPSEPubDP_user_traffic_enabled_transports, 1, 1) /* enabled_transports */ \
    }, \
    DDS_TRUST_QOS_POLICY_DEFAULT, \
    DDS_PROPERTY_QOS_POLICY_DEFAULT \
}
/* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=55, columnNumber=74 */
extern const char *const HelloWorldAppLibrary_HelloWorldDPSEPubDP_HelloWorldDPSEPub_HelloWorldDPSEDW_transport_enabled_transports[1];
#define RTI_APP_GEN___DW_QOS_HelloWorldAppLibrary_HelloWorldDPSEPubDP_HelloWorldDPSEPub_HelloWorldDPSEDW \
{ \
    DDS_DEADLINE_QOS_POLICY_DEFAULT, \
    DDS_LIVELINESS_QOS_POLICY_DEFAULT, \
    {   /* history */ \
        DDS_KEEP_LAST_HISTORY_QOS, /* kind */ \
        32L /* depth */ \
    }, \
    {   /* resource_limits */ \
        64L, /* max_samples */ \
        2L, /* max_instances */ \
        32L /* max_samples_per_instance */ \
    }, \
    DDS_OWNERSHIP_QOS_POLICY_DEFAULT, \
    DDS_OWNERSHIP_STRENGTH_QOS_POLICY_DEFAULT, \
    DDS_LATENCY_BUDGET_QOS_POLICY_DEFAULT, \
    {   /* reliability */ \
        DDS_RELIABLE_RELIABILITY_QOS, /* kind */ \
        {   /* max_blocking_time */ \
            0L, /* sec */ \
            100000000L /* nanosec */ \
        } \
    }, \
    DDS_DURABILITY_QOS_POLICY_DEFAULT, \
    DDS_DESTINATION_ORDER_QOS_POLICY_DEFAULT, \
    DDS_TRANSPORT_ENCAPSULATION_QOS_POLICY_DEFAULT, \
    DDS_DATA_REPRESENTATION_QOS_POLICY_DEFAULT, \
    {   /* protocol */ \
        1UL, /* rtps_object_id */ \
        { /* rtps_reliable_writer */ \
            {   /* heartbeat_period */ \
                0L, /* sec */ \
                250000000L /* nanosec */ \
            },  \
            1L, /* heartbeats_per_max_samples */ \
            DDS_LENGTH_UNLIMITED, /* max_send_window */ \
            DDS_LENGTH_UNLIMITED, /* max_heartbeat_retries */ \
            {   /* first_write_sequence_number */ \
                0, /* high */ \
                1  /* low */ \
            } \
        }, \
        DDS_BOOLEAN_TRUE /* serialize_on_write */ \
    }, \
    DDS_TYPESUPPORT_QOS_POLICY_DEFAULT, \
    {   /* transports */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPSEPubDP_HelloWorldDPSEPub_HelloWorldDPSEDW_transport_enabled_transports, 1, 1) /* enabled_transports */ \
    }, \
    RTI_MANAGEMENT_QOS_POLICY_DEFAULT, \
    DDS_DATAWRITERRESOURCE_LIMITS_QOS_POLICY_DEFAULT, \
    DDS_PUBLISH_MODE_QOS_POLICY_DEFAULT, \
    DDS_DATAWRITERQOS_TRUST_INITIALIZER \
    DDS_DATAWRITERQOS_APPGEN_INITIALIZER \
    NULL, \
    DDS_DataWriterTransferModeQosPolicy_INITIALIZER \
}
/* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=68, columnNumber=67 */
extern const char *const HelloWorldAppLibrary_HelloWorldDPSESubDP_initial_peers[2];
extern const char *const HelloWorldAppLibrary_HelloWorldDPSESubDP_discovery_enabled_transports[3];
extern const char *const HelloWorldAppLibrary_HelloWorldDPSESubDP_transport_enabled_transports[1];
extern const char *const HelloWorldAppLibrary_HelloWorldDPSESubDP_user_traffic_enabled_transports[1];
#define RTI_APP_GEN___DP_QOS_HelloWorldAppLibrary_HelloWorldDPSESubDP \
{ \
    DDS_ENTITY_FACTORY_QOS_POLICY_DEFAULT, \
    {   /* discovery */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPSESubDP_initial_peers, 2, 2), /* initial_peers */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPSESubDP_discovery_enabled_transports, 3, 3), /* enabled_transports */ \
        { \
            { { "dpse1" } }, /* RT_ComponentFactoryId_INITIALIZER */ \
            NDDS_Discovery_Property_INITIALIZER \
        }, /* discovery_component */ \
        DDS_BOOLEAN_FALSE /* accept_unknown_peers */ \
    }, \
    {   /* resource_limits  */ \
        1L, /* local_writer_allocation */ \
        1L, /* local_reader_allocation */ \
        1L, /* local_publisher_allocation */ \
        1L, /* local_subscriber_allocation */ \
        1L, /* local_topic_allocation */ \
        1L, /* local_type_allocation */ \
        8L, /* remote_participant_allocation */ \
        8L, /* remote_writer_allocation */ \
        8L, /* remote_reader_allocation */ \
        32L, /* matching_writer_reader_pair_allocation */ \
        32L, /* matching_reader_writer_pair_allocation */ \
        32L, /* max_receive_ports */ \
        32L, /* max_destination_ports */ \
        65536, /* unbound_data_buffer_size */ \
        500UL /* shmem_ref_transfer_mode_max_segments */ \
    }, \
    DDS_ENTITY_NAME_QOS_POLICY_DEFAULT, \
    DDS_WIRE_PROTOCOL_QOS_POLICY_DEFAULT, \
    {   /* transports */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPSESubDP_transport_enabled_transports, 1, 1) /* enabled_transports */ \
    }, \
    {   /* user_traffic */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPSESubDP_user_traffic_enabled_transports, 1, 1) /* enabled_transports */ \
    }, \
    DDS_TRUST_QOS_POLICY_DEFAULT, \
    DDS_PROPERTY_QOS_POLICY_DEFAULT \
}
/* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=65, columnNumber=74 */
extern const char *const HelloWorldAppLibrary_HelloWorldDPSESubDP_HelloWorldDPSESub_HelloWorldDPSEDR_transport_enabled_transports[2];
#define RTI_APP_GEN___DR_QOS_HelloWorldAppLibrary_HelloWorldDPSESubDP_HelloWorldDPSESub_HelloWorldDPSEDR \
{ \
    DDS_DEADLINE_QOS_POLICY_DEFAULT, \
    DDS_LIVELINESS_QOS_POLICY_DEFAULT, \
    {   /* history */ \
        DDS_KEEP_LAST_HISTORY_QOS, /* kind */ \
        32L /* depth */ \
    }, \
    {   /* resource_limits */ \
        64L, /* max_samples */ \
        2L, /* max_instances */ \
        32L /* max_samples_per_instance */ \
    }, \
    DDS_OWNERSHIP_QOS_POLICY_DEFAULT, \
    DDS_LATENCY_BUDGET_QOS_POLICY_DEFAULT, \
    {   /* reliability */ \
        DDS_RELIABLE_RELIABILITY_QOS, /* kind */ \
        {   /* max_blocking_time */ \
            0L, /* sec */ \
            0L /* nanosec */ \
        } \
    }, \
    DDS_DURABILITY_QOS_POLICY_DEFAULT, \
    DDS_DESTINATION_ORDER_QOS_POLICY_DEFAULT, \
    DDS_TRANSPORT_ENCAPSULATION_QOS_POLICY_DEFAULT, \
    DDS_DATA_REPRESENTATION_QOS_POLICY_DEFAULT, \
    DDS_TYPESUPPORT_QOS_POLICY_DEFAULT, \
    {   /* protocol */ \
        2UL /* rtps_object_id */ \
    }, \
    {   /* transports */ \
        REDA_StringSeq_INITIALIZER_W_LOAN(HelloWorldAppLibrary_HelloWorldDPSESubDP_HelloWorldDPSESub_HelloWorldDPSEDR_transport_enabled_transports, 2, 2) /* enabled_transports */ \
    }, \
    {   /* reader_resource_limits */ \
        10L, /* max_remote_writers */ \
        10L, /* max_remote_writers_per_instance */ \
        1L, /* max_samples_per_remote_writer */ \
        1L, /* max_outstanding_reads */ \
        DDS_NO_INSTANCE_REPLACEMENT_QOS, /* instance_replacement */ \
        4L, /* max_routes_per_writer */ \
        DDS_MAX_AUTO, /* max_fragmented_samples */ \
        DDS_MAX_AUTO, /* max_fragmented_samples_per_remote_writer */ \
        DDS_SIZE_AUTO /* shmem_ref_transfer_mode_attached_segment_allocation */ \
    }, \
    RTI_MANAGEMENT_QOS_POLICY_DEFAULT, \
    DDS_DATAREADERQOS_TRUST_INITIALIZER \
    DDS_DATAREADERQOS_APPGEN_INITIALIZER \
    NULL \
}
extern struct DPDE_DiscoveryPluginProperty HelloWorldAppLibrary_HelloWorldDPDEPubDP_dpde[1];
extern struct UDP_InterfaceFactoryProperty HelloWorldAppLibrary_HelloWorldDPDEPubDP_udpv4[1];
extern const struct ComponentFactoryUnregisterModel HelloWorldAppLibrary_HelloWorldDPDEPubDP_unregister_components[2];
extern const struct ComponentFactoryRegisterModel HelloWorldAppLibrary_HelloWorldDPDEPubDP_register_components[2];
#define RTI_APP_GEN__DPF_HelloWorldAppLibrary_HelloWorldDPDEPubDP \
{ \
    2UL, /* unregister_count */ \
    HelloWorldAppLibrary_HelloWorldDPDEPubDP_unregister_components, /* unregister_components */ \
    2UL, /* register_count */ \
    HelloWorldAppLibrary_HelloWorldDPDEPubDP_register_components, /* register_components */ \
    RTI_APP_GEN___DPF_QOS_QosLibrary_DefaultProfile /* factory_qos */ \
}
/* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=32, columnNumber=62 */
extern const struct APPGEN_TypeRegistrationModel HelloWorldAppLibrary_HelloWorldDPDEPubDP_type_registrations[1];
extern const struct APPGEN_TopicModel HelloWorldAppLibrary_HelloWorldDPDEPubDP_topics[1];
extern const struct APPGEN_PublisherModel HelloWorldAppLibrary_HelloWorldDPDEPubDP_publishers[1];
#define RTI_APP_GEN__DP_HelloWorldAppLibrary_HelloWorldDPDEPubDP \
{ \
    "HelloWorldDPDEPubDP", /* name */ \
    RTI_APP_GEN__DPF_HelloWorldAppLibrary_HelloWorldDPDEPubDP, /* domain_participant_factory */ \
    RTI_APP_GEN___DP_QOS_HelloWorldAppLibrary_HelloWorldDPDEPubDP, /* participant_qos */ \
    0L, /* domain_id */ \
    1UL, /* type_registration_count */ \
    HelloWorldAppLibrary_HelloWorldDPDEPubDP_type_registrations, /* type_registrations */ \
    1UL, /* topic_count */ \
    HelloWorldAppLibrary_HelloWorldDPDEPubDP_topics, /* topics */ \
    1UL, /* publisher_count */ \
    HelloWorldAppLibrary_HelloWorldDPDEPubDP_publishers, /* publishers */ \
    0UL, /* subscriber_count */ \
    NULL, /* subscribers */ \
    0UL, /* remote_participant_count */ \
    NULL, /* remote_participants */ \
    0UL, /* flow_controller_count */ \
    NULL, /* flow_controllers */ \
}
extern struct DPDE_DiscoveryPluginProperty HelloWorldAppLibrary_HelloWorldDPDESubDP_dpde[1];
extern struct UDP_InterfaceFactoryProperty HelloWorldAppLibrary_HelloWorldDPDESubDP_udpv4[1];
extern const struct ComponentFactoryUnregisterModel HelloWorldAppLibrary_HelloWorldDPDESubDP_unregister_components[2];
extern const struct ComponentFactoryRegisterModel HelloWorldAppLibrary_HelloWorldDPDESubDP_register_components[2];
#define RTI_APP_GEN__DPF_HelloWorldAppLibrary_HelloWorldDPDESubDP \
{ \
    2UL, /* unregister_count */ \
    HelloWorldAppLibrary_HelloWorldDPDESubDP_unregister_components, /* unregister_components */ \
    2UL, /* register_count */ \
    HelloWorldAppLibrary_HelloWorldDPDESubDP_register_components, /* register_components */ \
    RTI_APP_GEN___DPF_QOS_QosLibrary_DefaultProfile /* factory_qos */ \
}
/* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=42, columnNumber=62 */
extern const struct APPGEN_TypeRegistrationModel HelloWorldAppLibrary_HelloWorldDPDESubDP_type_registrations[1];
extern const struct APPGEN_TopicModel HelloWorldAppLibrary_HelloWorldDPDESubDP_topics[1];
extern const struct APPGEN_SubscriberModel HelloWorldAppLibrary_HelloWorldDPDESubDP_subscribers[1];
#define RTI_APP_GEN__DP_HelloWorldAppLibrary_HelloWorldDPDESubDP \
{ \
    "HelloWorldDPDESubDP", /* name */ \
    RTI_APP_GEN__DPF_HelloWorldAppLibrary_HelloWorldDPDESubDP, /* domain_participant_factory */ \
    RTI_APP_GEN___DP_QOS_HelloWorldAppLibrary_HelloWorldDPDESubDP, /* participant_qos */ \
    0L, /* domain_id */ \
    1UL, /* type_registration_count */ \
    HelloWorldAppLibrary_HelloWorldDPDESubDP_type_registrations, /* type_registrations */ \
    1UL, /* topic_count */ \
    HelloWorldAppLibrary_HelloWorldDPDESubDP_topics, /* topics */ \
    0UL, /* publisher_count */ \
    NULL, /* publishers */ \
    1UL, /* subscriber_count */ \
    HelloWorldAppLibrary_HelloWorldDPDESubDP_subscribers, /* subscribers */ \
    0UL, /* remote_participant_count */ \
    NULL, /* remote_participants */ \
    0UL, /* flow_controller_count */ \
    NULL, /* flow_controllers */ \
}
/* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=64, columnNumber=82 */
#define RTI_APP_GEN__RSD_HelloWorldAppLibrary_HelloWorldDPSEPubDP_HelloWorldAppLibrary_HelloWorldDPSESubDP_HelloWorldDPSESub_HelloWorldDPSEDR \
{ \
    { /* subscription_data */ \
        { \
            { 0, 0, 0, 2 } /* key */ \
        }, \
        { \
            { 0, 0, 0, 0 } /* participant_key */ \
        }, \
        "HelloWorldTopic", /* topic_name */ \
        "HelloWorldType", /* type_name */ \
        DDS_DEADLINE_QOS_POLICY_DEFAULT, \
        DDS_OWNERSHIP_QOS_POLICY_DEFAULT, \
        DDS_LATENCY_BUDGET_QOS_POLICY_DEFAULT, \
        {   /* reliability */ \
            DDS_RELIABLE_RELIABILITY_QOS, /* kind */ \
            {   /* max_blocking_time */ \
                0L, /* sec */ \
                0L /* nanosec */ \
            } \
        }, \
        DDS_LIVELINESS_QOS_POLICY_DEFAULT, \
        DDS_DURABILITY_QOS_POLICY_DEFAULT, \
        DDS_DESTINATION_ORDER_QOS_POLICY_DEFAULT, \
        DDS_SEQUENCE_INITIALIZER, \
        DDS_SEQUENCE_INITIALIZER, \
        DDS_DATA_REPRESENTATION_QOS_POLICY_DEFAULT \
        DDS_TRUST_SUBSCRIPTION_DATA_INITIALIZER \
    }, \
    HelloWorldTypePlugin_get /* get_type_plugin */ \
}
extern struct DPSE_DiscoveryPluginProperty HelloWorldAppLibrary_HelloWorldDPSEPubDP_dpse[1];
extern struct UDP_InterfaceFactoryProperty HelloWorldAppLibrary_HelloWorldDPSEPubDP_udpv4[1];
extern const struct ComponentFactoryUnregisterModel HelloWorldAppLibrary_HelloWorldDPSEPubDP_unregister_components[2];
extern const struct ComponentFactoryRegisterModel HelloWorldAppLibrary_HelloWorldDPSEPubDP_register_components[2];
#define RTI_APP_GEN__DPF_HelloWorldAppLibrary_HelloWorldDPSEPubDP \
{ \
    2UL, /* unregister_count */ \
    HelloWorldAppLibrary_HelloWorldDPSEPubDP_unregister_components, /* unregister_components */ \
    2UL, /* register_count */ \
    HelloWorldAppLibrary_HelloWorldDPSEPubDP_register_components, /* register_components */ \
    RTI_APP_GEN___DPF_QOS_QosLibrary_DefaultProfile /* factory_qos */ \
}
/* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=52, columnNumber=62 */
extern const struct APPGEN_TypeRegistrationModel HelloWorldAppLibrary_HelloWorldDPSEPubDP_type_registrations[1];
extern const struct APPGEN_TopicModel HelloWorldAppLibrary_HelloWorldDPSEPubDP_topics[1];
extern const struct APPGEN_PublisherModel HelloWorldAppLibrary_HelloWorldDPSEPubDP_publishers[1];
extern const struct APPGEN_RemoteSubscriptionModel HelloWorldAppLibrary_HelloWorldDPSEPubDP_remote_subscribers[1];
extern const struct APPGEN_RemoteParticipantModel HelloWorldAppLibrary_HelloWorldDPSEPubDP_remote_participants[1];
#define RTI_APP_GEN__DP_HelloWorldAppLibrary_HelloWorldDPSEPubDP \
{ \
    "HelloWorldDPSEPubDP", /* name */ \
    RTI_APP_GEN__DPF_HelloWorldAppLibrary_HelloWorldDPSEPubDP, /* domain_participant_factory */ \
    RTI_APP_GEN___DP_QOS_HelloWorldAppLibrary_HelloWorldDPSEPubDP, /* participant_qos */ \
    0L, /* domain_id */ \
    1UL, /* type_registration_count */ \
    HelloWorldAppLibrary_HelloWorldDPSEPubDP_type_registrations, /* type_registrations */ \
    1UL, /* topic_count */ \
    HelloWorldAppLibrary_HelloWorldDPSEPubDP_topics, /* topics */ \
    1UL, /* publisher_count */ \
    HelloWorldAppLibrary_HelloWorldDPSEPubDP_publishers, /* publishers */ \
    0UL, /* subscriber_count */ \
    NULL, /* subscribers */ \
    1UL, /* remote_participant_count */ \
    HelloWorldAppLibrary_HelloWorldDPSEPubDP_remote_participants, /* remote_participants */ \
    0UL, /* flow_controller_count */ \
    NULL, /* flow_controllers */ \
}
/* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=54, columnNumber=82 */
#define RTI_APP_GEN__RPD_HelloWorldAppLibrary_HelloWorldDPSESubDP_HelloWorldAppLibrary_HelloWorldDPSEPubDP_HelloWorldDPSEPub_HelloWorldDPSEDW \
{ \
    { /* publication_data */ \
        { \
            { 0, 0, 0, 1 } /* key */ \
        }, \
        { \
            { 0, 0, 0, 0 } /* participant_key */ \
        }, \
        "HelloWorldTopic", /* topic_name */ \
        "HelloWorldType", /* type_name */ \
        DDS_DEADLINE_QOS_POLICY_DEFAULT, \
        DDS_OWNERSHIP_QOS_POLICY_DEFAULT, \
        DDS_OWNERSHIP_STRENGTH_QOS_POLICY_DEFAULT, \
        DDS_LATENCY_BUDGET_QOS_POLICY_DEFAULT, \
        {   /* reliability */ \
            DDS_RELIABLE_RELIABILITY_QOS, /* kind */ \
            {   /* max_blocking_time */ \
                0L, /* sec */ \
                100000000L /* nanosec */ \
            } \
        }, \
        DDS_LIVELINESS_QOS_POLICY_DEFAULT, \
        DDS_DURABILITY_QOS_POLICY_DEFAULT, \
        DDS_DESTINATION_ORDER_QOS_POLICY_DEFAULT, \
        DDS_SEQUENCE_INITIALIZER, \
        DDS_DATA_REPRESENTATION_QOS_POLICY_DEFAULT \
        DDS_TRUST_PUBLICATION_DATA_INITIALIZER \
    }, \
    HelloWorldTypePlugin_get /* get_type_plugin */ \
}
extern struct DPSE_DiscoveryPluginProperty HelloWorldAppLibrary_HelloWorldDPSESubDP_dpse[1];
extern struct UDP_InterfaceFactoryProperty HelloWorldAppLibrary_HelloWorldDPSESubDP_udpv4[1];
extern const struct ComponentFactoryUnregisterModel HelloWorldAppLibrary_HelloWorldDPSESubDP_unregister_components[2];
extern const struct ComponentFactoryRegisterModel HelloWorldAppLibrary_HelloWorldDPSESubDP_register_components[2];
#define RTI_APP_GEN__DPF_HelloWorldAppLibrary_HelloWorldDPSESubDP \
{ \
    2UL, /* unregister_count */ \
    HelloWorldAppLibrary_HelloWorldDPSESubDP_unregister_components, /* unregister_components */ \
    2UL, /* register_count */ \
    HelloWorldAppLibrary_HelloWorldDPSESubDP_register_components, /* register_components */ \
    RTI_APP_GEN___DPF_QOS_QosLibrary_DefaultProfile /* factory_qos */ \
}
/* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=62, columnNumber=62 */
extern const struct APPGEN_TypeRegistrationModel HelloWorldAppLibrary_HelloWorldDPSESubDP_type_registrations[1];
extern const struct APPGEN_TopicModel HelloWorldAppLibrary_HelloWorldDPSESubDP_topics[1];
extern const struct APPGEN_SubscriberModel HelloWorldAppLibrary_HelloWorldDPSESubDP_subscribers[1];
extern const struct APPGEN_RemotePublicationModel HelloWorldAppLibrary_HelloWorldDPSESubDP_remote_publishers[1];
extern const struct APPGEN_RemoteParticipantModel HelloWorldAppLibrary_HelloWorldDPSESubDP_remote_participants[1];
#define RTI_APP_GEN__DP_HelloWorldAppLibrary_HelloWorldDPSESubDP \
{ \
    "HelloWorldDPSESubDP", /* name */ \
    RTI_APP_GEN__DPF_HelloWorldAppLibrary_HelloWorldDPSESubDP, /* domain_participant_factory */ \
    RTI_APP_GEN___DP_QOS_HelloWorldAppLibrary_HelloWorldDPSESubDP, /* participant_qos */ \
    0L, /* domain_id */ \
    1UL, /* type_registration_count */ \
    HelloWorldAppLibrary_HelloWorldDPSESubDP_type_registrations, /* type_registrations */ \
    1UL, /* topic_count */ \
    HelloWorldAppLibrary_HelloWorldDPSESubDP_topics, /* topics */ \
    0UL, /* publisher_count */ \
    NULL, /* publishers */ \
    1UL, /* subscriber_count */ \
    HelloWorldAppLibrary_HelloWorldDPSESubDP_subscribers, /* subscribers */ \
    1UL, /* remote_participant_count */ \
    HelloWorldAppLibrary_HelloWorldDPSESubDP_remote_participants, /* remote_participants */ \
    0UL, /* flow_controller_count */ \
    NULL, /* flow_controllers */ \
}
extern const struct APPGEN_DomainParticipantModel HelloWorldAppLibrary_participants[4];
#define RTI_APP_GEN__LIB_HelloWorldAppLibrary \
{ \
    "HelloWorldAppLibrary", /* library_name */ \
    4UL, /* participant_count */ \
    HelloWorldAppLibrary_participants /* participants */ \
}
extern const struct APPGEN_LibraryModel HelloWorld_libraries[1];

Example generated source configuration file HelloWorldAppgen.c:

/*
WARNING: THIS FILE IS AUTO-GENERATED. DO NOT MODIFY.
This file was generated from HelloWorld.xml using "rtiddsmag."
The rtiddsmag tool is part of the RTI Connext distribution.
For more information, type 'rtiddsmag -help' at a command shell
or consult the RTI Connext manual.
*/
#include "HelloWorldAppgen.h"
const char *const HelloWorldAppLibrary_HelloWorldDPDEPubDP_initial_peers[2] =
{
    "127.0.0.1",
    "239.255.0.1"
};
const char *const HelloWorldAppLibrary_HelloWorldDPDEPubDP_discovery_enabled_transports[3] =
{
    "udp1://",
    "udp1://127.0.0.1",
    "udp1://239.255.0.1"
};
const char *const HelloWorldAppLibrary_HelloWorldDPDEPubDP_transport_enabled_transports[1] =
{
    "udp1"
};
const char *const HelloWorldAppLibrary_HelloWorldDPDEPubDP_user_traffic_enabled_transports[1] =
{
    "udp1://"
};
const char *const HelloWorldAppLibrary_HelloWorldDPDEPubDP_HelloWorldDPDEPub_HelloWorldDPDEDW_transport_enabled_transports[1] =
{
    "udp1://"
};
const char *const HelloWorldAppLibrary_HelloWorldDPDESubDP_initial_peers[2] =
{
    "127.0.0.1",
    "239.255.0.1"
};
const char *const HelloWorldAppLibrary_HelloWorldDPDESubDP_discovery_enabled_transports[3] =
{
    "udp1://",
    "udp1://127.0.0.1",
    "udp1://239.255.0.1"
};
const char *const HelloWorldAppLibrary_HelloWorldDPDESubDP_transport_enabled_transports[1] =
{
    "udp1"
};
const char *const HelloWorldAppLibrary_HelloWorldDPDESubDP_user_traffic_enabled_transports[1] =
{
    "udp1://"
};
const char *const HelloWorldAppLibrary_HelloWorldDPDESubDP_HelloWorldDPDESub_HelloWorldDPDEDR_transport_enabled_transports[2] =
{
    "udp1://",
    "udp1://127.0.0.1"
};
const char *const HelloWorldAppLibrary_HelloWorldDPSEPubDP_initial_peers[2] =
{
    "127.0.0.1",
    "239.255.0.1"
};
const char *const HelloWorldAppLibrary_HelloWorldDPSEPubDP_discovery_enabled_transports[3] =
{
    "udp1://",
    "udp1://127.0.0.1",
    "udp1://239.255.0.1"
};
const char *const HelloWorldAppLibrary_HelloWorldDPSEPubDP_transport_enabled_transports[1] =
{
    "udp1"
};
const char *const HelloWorldAppLibrary_HelloWorldDPSEPubDP_user_traffic_enabled_transports[1] =
{
    "udp1://"
};
const char *const HelloWorldAppLibrary_HelloWorldDPSEPubDP_HelloWorldDPSEPub_HelloWorldDPSEDW_transport_enabled_transports[1] =
{
    "udp1://"
};
const char *const HelloWorldAppLibrary_HelloWorldDPSESubDP_initial_peers[2] =
{
    "127.0.0.1",
    "239.255.0.1"
};
const char *const HelloWorldAppLibrary_HelloWorldDPSESubDP_discovery_enabled_transports[3] =
{
    "udp1://",
    "udp1://127.0.0.1",
    "udp1://239.255.0.1"
};
const char *const HelloWorldAppLibrary_HelloWorldDPSESubDP_transport_enabled_transports[1] =
{
    "udp1"
};
const char *const HelloWorldAppLibrary_HelloWorldDPSESubDP_user_traffic_enabled_transports[1] =
{
    "udp1://"
};
const char *const HelloWorldAppLibrary_HelloWorldDPSESubDP_HelloWorldDPSESub_HelloWorldDPSEDR_transport_enabled_transports[2] =
{
    "udp1://",
    "udp1://127.0.0.1"
};
const struct ComponentFactoryUnregisterModel HelloWorldAppLibrary_HelloWorldDPDEPubDP_unregister_components[2] =
{
    {
        "_udp", /* NETIO_DEFAULT_UDP_NAME */
        NULL, /* udp struct RT_ComponentFactoryProperty** */
        NULL  /* udp struct RT_ComponentFactoryListener** */
    },
    {
        "_intra", /* NETIO_DEFAULT_INTRA_NAME */
        NULL, /* _intra struct RT_ComponentFactoryProperty** */
        NULL  /* _intra struct RT_ComponentFactoryListener** */
    }
};
struct DPDE_DiscoveryPluginProperty HelloWorldAppLibrary_HelloWorldDPDEPubDP_dpde[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorldQos.xml, lineNumber=145, columnNumber=35 */
    RTI_APP_GEN___dpde__HelloWorldAppLibrary_HelloWorldDPDEPubDP_dpde1
};
struct UDP_InterfaceFactoryProperty HelloWorldAppLibrary_HelloWorldDPDEPubDP_udpv4[1] =
{
    RTI_APP_GEN___udpv4__HelloWorldAppLibrary_HelloWorldDPDEPubDP_udp1
};
const struct ComponentFactoryRegisterModel HelloWorldAppLibrary_HelloWorldDPDEPubDP_register_components[2] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorldQos.xml, lineNumber=145, columnNumber=35 */
    {
        "dpde1", /* register_name */
        DPDE_DiscoveryFactory_get_interface, /* register_intf */
        &HelloWorldAppLibrary_HelloWorldDPDEPubDP_dpde[0]._parent, /* register_property */
        NULL /* register_listener */
    },
    {
        "udp1", /* register_name */
        UDP_InterfaceFactory_get_interface, /* register_intf */
        &HelloWorldAppLibrary_HelloWorldDPDEPubDP_udpv4[0]._parent._parent, /* register_property */
        NULL /* register_listener */
    }
};
const struct APPGEN_TypeRegistrationModel HelloWorldAppLibrary_HelloWorldDPDEPubDP_type_registrations[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=20, columnNumber=72 */
    {
        "HelloWorldType", /* registered_type_name */
        HelloWorldTypePlugin_get /* get_type_plugin */
    }
};
const struct APPGEN_TopicModel HelloWorldAppLibrary_HelloWorldDPDEPubDP_topics[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=23, columnNumber=78 */
    {
        "HelloWorldTopic", /* topic_name */
        "HelloWorldType", /* type_name */
        DDS_TopicQos_INITIALIZER /* topic_qos*/
    }
};
const struct APPGEN_DataWriterModel HelloWorldAppLibrary_HelloWorldDPDEPubDP_publisher_HelloWorldDPDEPub_data_writers[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=34, columnNumber=82 */
    {
        "HelloWorldDPDEDW", /* name */
        1UL, /* multiplicity */
        "HelloWorldTopic", /* topic_name */
        RTI_APP_GEN___DW_QOS_HelloWorldAppLibrary_HelloWorldDPDEPubDP_HelloWorldDPDEPub_HelloWorldDPDEDW /* writer_qos */
    }
};
const struct APPGEN_PublisherModel HelloWorldAppLibrary_HelloWorldDPDEPubDP_publishers[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=33, columnNumber=49 */
    {
        "HelloWorldDPDEPub", /* name */
        1UL, /* multiplicity */
        DDS_PublisherQos_INITIALIZER, /* publisher_qos */
        1UL, /* writer_count */
        HelloWorldAppLibrary_HelloWorldDPDEPubDP_publisher_HelloWorldDPDEPub_data_writers /* data_writers */
    }
};
const struct ComponentFactoryUnregisterModel HelloWorldAppLibrary_HelloWorldDPDESubDP_unregister_components[2] =
{
    {
        "_udp", /* NETIO_DEFAULT_UDP_NAME */
        NULL, /* udp struct RT_ComponentFactoryProperty** */
        NULL  /* udp struct RT_ComponentFactoryListener** */
    },
    {
        "_intra", /* NETIO_DEFAULT_INTRA_NAME */
        NULL, /* _intra struct RT_ComponentFactoryProperty** */
        NULL  /* _intra struct RT_ComponentFactoryListener** */
    }
};
struct DPDE_DiscoveryPluginProperty HelloWorldAppLibrary_HelloWorldDPDESubDP_dpde[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorldQos.xml, lineNumber=145, columnNumber=35 */
    RTI_APP_GEN___dpde__HelloWorldAppLibrary_HelloWorldDPDEPubDP_dpde1
};
struct UDP_InterfaceFactoryProperty HelloWorldAppLibrary_HelloWorldDPDESubDP_udpv4[1] =
{
    RTI_APP_GEN___udpv4__HelloWorldAppLibrary_HelloWorldDPDEPubDP_udp1
};
const struct ComponentFactoryRegisterModel HelloWorldAppLibrary_HelloWorldDPDESubDP_register_components[2] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorldQos.xml, lineNumber=145, columnNumber=35 */
    {
        "dpde1", /* register_name */
        DPDE_DiscoveryFactory_get_interface, /* register_intf */
        &HelloWorldAppLibrary_HelloWorldDPDESubDP_dpde[0]._parent, /* register_property */
        NULL /* register_listener */
    },
    {
        "udp1", /* register_name */
        UDP_InterfaceFactory_get_interface, /* register_intf */
        &HelloWorldAppLibrary_HelloWorldDPDESubDP_udpv4[0]._parent._parent, /* register_property */
        NULL /* register_listener */
    }
};
const struct APPGEN_TypeRegistrationModel HelloWorldAppLibrary_HelloWorldDPDESubDP_type_registrations[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=20, columnNumber=72 */
    {
        "HelloWorldType", /* registered_type_name */
        HelloWorldTypePlugin_get /* get_type_plugin */
    }
};
const struct APPGEN_TopicModel HelloWorldAppLibrary_HelloWorldDPDESubDP_topics[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=23, columnNumber=78 */
    {
        "HelloWorldTopic", /* topic_name */
        "HelloWorldType", /* type_name */
        DDS_TopicQos_INITIALIZER /* topic_qos*/
    }
};
const struct APPGEN_DataReaderModel HelloWorldAppLibrary_HelloWorldDPDESubDP_subscriber_HelloWorldDPDESub_data_readers[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=44, columnNumber=82 */
    {
        "HelloWorldDPDEDR", /* name */
        1UL, /* multiplicity */
        "HelloWorldTopic", /* topic_name */
        RTI_APP_GEN___DR_QOS_HelloWorldAppLibrary_HelloWorldDPDESubDP_HelloWorldDPDESub_HelloWorldDPDEDR /* reader_qos */
    }
};
const struct APPGEN_SubscriberModel HelloWorldAppLibrary_HelloWorldDPDESubDP_subscribers[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=43, columnNumber=50 */
    {
        "HelloWorldDPDESub", /* name */
        1UL, /* multiplicity */
        DDS_SubscriberQos_INITIALIZER, /* subscriber_qos */
        1UL, /* reader_count */
        HelloWorldAppLibrary_HelloWorldDPDESubDP_subscriber_HelloWorldDPDESub_data_readers /* data_readers */
    }
};
const struct ComponentFactoryUnregisterModel HelloWorldAppLibrary_HelloWorldDPSEPubDP_unregister_components[2] =
{
    {
        "_udp", /* NETIO_DEFAULT_UDP_NAME */
        NULL, /* udp struct RT_ComponentFactoryProperty** */
        NULL  /* udp struct RT_ComponentFactoryListener** */
    },
    {
        "_intra", /* NETIO_DEFAULT_INTRA_NAME */
        NULL, /* _intra struct RT_ComponentFactoryProperty** */
        NULL  /* _intra struct RT_ComponentFactoryListener** */
    }
};
struct DPSE_DiscoveryPluginProperty HelloWorldAppLibrary_HelloWorldDPSEPubDP_dpse[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorldQos.xml, lineNumber=152, columnNumber=35 */
    RTI_APP_GEN___dpse__HelloWorldAppLibrary_HelloWorldDPSEPubDP_dpse1
};
struct UDP_InterfaceFactoryProperty HelloWorldAppLibrary_HelloWorldDPSEPubDP_udpv4[1] =
{
    RTI_APP_GEN___udpv4__HelloWorldAppLibrary_HelloWorldDPDEPubDP_udp1
};
const struct ComponentFactoryRegisterModel HelloWorldAppLibrary_HelloWorldDPSEPubDP_register_components[2] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorldQos.xml, lineNumber=152, columnNumber=35 */
    {
        "dpse1", /* register_name */
        DPSE_DiscoveryFactory_get_interface, /* register_intf */
        &HelloWorldAppLibrary_HelloWorldDPSEPubDP_dpse[0]._parent, /* register_property */
        NULL /* register_listener */
    },
    {
        "udp1", /* register_name */
        UDP_InterfaceFactory_get_interface, /* register_intf */
        &HelloWorldAppLibrary_HelloWorldDPSEPubDP_udpv4[0]._parent._parent, /* register_property */
        NULL /* register_listener */
    }
};
const struct APPGEN_TypeRegistrationModel HelloWorldAppLibrary_HelloWorldDPSEPubDP_type_registrations[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=20, columnNumber=72 */
    {
        "HelloWorldType", /* registered_type_name */
        HelloWorldTypePlugin_get /* get_type_plugin */
    }
};
const struct APPGEN_TopicModel HelloWorldAppLibrary_HelloWorldDPSEPubDP_topics[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=23, columnNumber=78 */
    {
        "HelloWorldTopic", /* topic_name */
        "HelloWorldType", /* type_name */
        DDS_TopicQos_INITIALIZER /* topic_qos*/
    }
};
const struct APPGEN_DataWriterModel HelloWorldAppLibrary_HelloWorldDPSEPubDP_publisher_HelloWorldDPSEPub_data_writers[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=54, columnNumber=82 */
    {
        "HelloWorldDPSEDW", /* name */
        1UL, /* multiplicity */
        "HelloWorldTopic", /* topic_name */
        RTI_APP_GEN___DW_QOS_HelloWorldAppLibrary_HelloWorldDPSEPubDP_HelloWorldDPSEPub_HelloWorldDPSEDW /* writer_qos */
    }
};
const struct APPGEN_PublisherModel HelloWorldAppLibrary_HelloWorldDPSEPubDP_publishers[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=53, columnNumber=49 */
    {
        "HelloWorldDPSEPub", /* name */
        1UL, /* multiplicity */
        DDS_PublisherQos_INITIALIZER, /* publisher_qos */
        1UL, /* writer_count */
        HelloWorldAppLibrary_HelloWorldDPSEPubDP_publisher_HelloWorldDPSEPub_data_writers /* data_writers */
    }
};
const struct APPGEN_RemoteSubscriptionModel HelloWorldAppLibrary_HelloWorldDPSEPubDP_remote_subscribers[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=64, columnNumber=82 */
    RTI_APP_GEN__RSD_HelloWorldAppLibrary_HelloWorldDPSEPubDP_HelloWorldAppLibrary_HelloWorldDPSESubDP_HelloWorldDPSESub_HelloWorldDPSEDR
};
const struct APPGEN_RemoteParticipantModel HelloWorldAppLibrary_HelloWorldDPSEPubDP_remote_participants[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=62, columnNumber=62 */
    {
        "HelloWorldDPSESubDP", /* name */
        0UL, /* remote_publisher_count */
        NULL, /* remote_publishers */
        1UL, /* remote_subscriber_count */
        HelloWorldAppLibrary_HelloWorldDPSEPubDP_remote_subscribers /* remote_subscribers */
    }
};
const struct ComponentFactoryUnregisterModel HelloWorldAppLibrary_HelloWorldDPSESubDP_unregister_components[2] =
{
    {
        "_udp", /* NETIO_DEFAULT_UDP_NAME */
        NULL, /* udp struct RT_ComponentFactoryProperty** */
        NULL  /* udp struct RT_ComponentFactoryListener** */
    },
    {
        "_intra", /* NETIO_DEFAULT_INTRA_NAME */
        NULL, /* _intra struct RT_ComponentFactoryProperty** */
        NULL  /* _intra struct RT_ComponentFactoryListener** */
    }
};
struct DPSE_DiscoveryPluginProperty HelloWorldAppLibrary_HelloWorldDPSESubDP_dpse[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorldQos.xml, lineNumber=152, columnNumber=35 */
    RTI_APP_GEN___dpse__HelloWorldAppLibrary_HelloWorldDPSEPubDP_dpse1
};
struct UDP_InterfaceFactoryProperty HelloWorldAppLibrary_HelloWorldDPSESubDP_udpv4[1] =
{
    RTI_APP_GEN___udpv4__HelloWorldAppLibrary_HelloWorldDPDEPubDP_udp1
};
const struct ComponentFactoryRegisterModel HelloWorldAppLibrary_HelloWorldDPSESubDP_register_components[2] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorldQos.xml, lineNumber=152, columnNumber=35 */
    {
        "dpse1", /* register_name */
        DPSE_DiscoveryFactory_get_interface, /* register_intf */
        &HelloWorldAppLibrary_HelloWorldDPSESubDP_dpse[0]._parent, /* register_property */
        NULL /* register_listener */
    },
    {
        "udp1", /* register_name */
        UDP_InterfaceFactory_get_interface, /* register_intf */
        &HelloWorldAppLibrary_HelloWorldDPSESubDP_udpv4[0]._parent._parent, /* register_property */
        NULL /* register_listener */
    }
};
const struct APPGEN_TypeRegistrationModel HelloWorldAppLibrary_HelloWorldDPSESubDP_type_registrations[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=20, columnNumber=72 */
    {
        "HelloWorldType", /* registered_type_name */
        HelloWorldTypePlugin_get /* get_type_plugin */
    }
};
const struct APPGEN_TopicModel HelloWorldAppLibrary_HelloWorldDPSESubDP_topics[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=23, columnNumber=78 */
    {
        "HelloWorldTopic", /* topic_name */
        "HelloWorldType", /* type_name */
        DDS_TopicQos_INITIALIZER /* topic_qos*/
    }
};
const struct APPGEN_DataReaderModel HelloWorldAppLibrary_HelloWorldDPSESubDP_subscriber_HelloWorldDPSESub_data_readers[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=64, columnNumber=82 */
    {
        "HelloWorldDPSEDR", /* name */
        1UL, /* multiplicity */
        "HelloWorldTopic", /* topic_name */
        RTI_APP_GEN___DR_QOS_HelloWorldAppLibrary_HelloWorldDPSESubDP_HelloWorldDPSESub_HelloWorldDPSEDR /* reader_qos */
    }
};
const struct APPGEN_SubscriberModel HelloWorldAppLibrary_HelloWorldDPSESubDP_subscribers[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=63, columnNumber=50 */
    {
        "HelloWorldDPSESub", /* name */
        1UL, /* multiplicity */
        DDS_SubscriberQos_INITIALIZER, /* subscriber_qos */
        1UL, /* reader_count */
        HelloWorldAppLibrary_HelloWorldDPSESubDP_subscriber_HelloWorldDPSESub_data_readers /* data_readers */
    }
};
const struct APPGEN_RemotePublicationModel HelloWorldAppLibrary_HelloWorldDPSESubDP_remote_publishers[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=54, columnNumber=82 */
    RTI_APP_GEN__RPD_HelloWorldAppLibrary_HelloWorldDPSESubDP_HelloWorldAppLibrary_HelloWorldDPSEPubDP_HelloWorldDPSEPub_HelloWorldDPSEDW
};
const struct APPGEN_RemoteParticipantModel HelloWorldAppLibrary_HelloWorldDPSESubDP_remote_participants[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=52, columnNumber=62 */
    {
        "HelloWorldDPSEPubDP", /* name */
        1UL, /* remote_publisher_count */
        HelloWorldAppLibrary_HelloWorldDPSESubDP_remote_publishers, /* remote_publishers */
        0UL, /* remote_subscriber_count */
        NULL /* remote_subscribers */
    }
};
const struct APPGEN_DomainParticipantModel HelloWorldAppLibrary_participants[4] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=32, columnNumber=62 */
    RTI_APP_GEN__DP_HelloWorldAppLibrary_HelloWorldDPDEPubDP,
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=42, columnNumber=62 */
    RTI_APP_GEN__DP_HelloWorldAppLibrary_HelloWorldDPDESubDP,
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=52, columnNumber=62 */
    RTI_APP_GEN__DP_HelloWorldAppLibrary_HelloWorldDPSEPubDP,
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=62, columnNumber=62 */
    RTI_APP_GEN__DP_HelloWorldAppLibrary_HelloWorldDPSESubDP
};
const struct APPGEN_LibraryModel HelloWorld_libraries[1] =
{
    /* XML Source Location: file=c:\shared\connextmicro\rti\ndds_lite\rti_me.2.0\example\C\HelloWorld_appgen\HelloWorld.xml, lineNumber=30, columnNumber=61 */
    RTI_APP_GEN__LIB_HelloWorldAppLibrary
};
const struct APPGEN_LibraryModelSeq HelloWorld_libraries_sequence =
        REDA_DEFINE_SEQUENCE_INITIALIZER_W_LOAN(
                HelloWorld_libraries,
                1,
                1,
                struct APPGEN_LibraryModel);
APPGENDllExport const struct APPGEN_LibraryModelSeq*
        APPGEN_get_library_seq(void)
{
    return &HelloWorld_libraries_sequence;
}