RTI Connext Java API  Version 6.0.1
 All Classes Namespaces Functions Variables Groups Pages
HelloWorldPublisher.java

RTI Connext Publication Example

The publication example generated by rtiddsgen. The example has been modified slightly to update the sample value.

HelloWorldSubscriber.java

/* HelloWorldPublisher.java
A publication of data of type HelloWorld
This file is derived from code automatically generated by the rtiddsgen
command:
rtiddsgen -language java -example <arch> HelloWorld.idl
Example publication of type HelloWorld automatically generated by
'rtiddsgen'. To test them follow these steps:
(1) Compile this file and the example subscription.
(2) Start the subscription on the same domain used for RTI Connext with the command
java HelloWorldSubscriber <domain_id> <sample_count>
(3) Start the publication on the same domain used for RTI Connext with the command
java HelloWorldPublisher <domain_id> <sample_count>
(4) [Optional] Specify the list of discovery initial peers and
multicast receive addresses via an environment variable or a file
(in the current working directory) called NDDS_DISCOVERY_PEERS.
You can run any number of publishers and subscribers programs, and can
add and remove them dynamically from the domain.
Example:
To run the example application on domain <domain_id>:
Ensure that $(NDDSHOME)/lib/<arch> is on the dynamic library path for
Java.
On Unix:
add $(NDDSHOME)/lib/<arch> to the 'LD_LIBRARY_PATH' environment
variable
On Windows:
add $(NDDSHOME)\lib<arch> to the 'Path' environment variable
Run the Java applications:
java -Djava.ext.dirs=$(NDDSHOME)/class HelloWorldPublisher <domain_id>
java -Djava.ext.dirs=$(NDDSHOME)/class HelloWorldSubscriber <domain_id>
modification history
------------ -------
*/
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Arrays;
import com.rti.dds.domain.*;
import com.rti.dds.infrastructure.*;
import com.rti.dds.publication.*;
import com.rti.dds.topic.*;
import com.rti.ndds.config.*;
// ===========================================================================
public class HelloWorldPublisher {
// -----------------------------------------------------------------------
// Public Methods
// -----------------------------------------------------------------------
public static void main(String[] args) {
// --- Get domain ID --- //
int domainId = 0;
if (args.length >= 1) {
domainId = Integer.valueOf(args[0]).intValue();
}
// -- Get max loop count; 0 means infinite loop --- //
int sampleCount = 0;
if (args.length >= 2) {
sampleCount = Integer.valueOf(args[1]).intValue();
}
/* Uncomment this to turn on additional logging
Logger.get_instance().set_verbosity_by_category(
LogCategory.NDDS_CONFIG_LOG_CATEGORY_API,
LogVerbosity.NDDS_CONFIG_LOG_VERBOSITY_STATUS_ALL);
*/
// --- Run --- //
publisherMain(domainId, sampleCount);
}
// -----------------------------------------------------------------------
// Private Methods
// -----------------------------------------------------------------------
// --- Constructors: -----------------------------------------------------
private HelloWorldPublisher() {
super();
}
// -----------------------------------------------------------------------
private static void publisherMain(int domainId, int sampleCount) {
DomainParticipant participant = null;
Publisher publisher = null;
Topic topic = null;
HelloWorldDataWriter writer = null;
try {
// --- Create participant --- //
/* To create participant with default QoS,
use DomainParticipantFactory.DomainParticipantFactory.
participant.get_default_publisher_qos() instead */
participant = DomainParticipantFactory.TheParticipantFactory.
create_participant(
domainId, DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT,
null /* listener */, StatusKind.STATUS_MASK_NONE);
// --- Create publisher --- //
/* To customize publisher QoS, use
participant.get_default_publisher_qos() instead */
publisher = participant.create_publisher(
DomainParticipant.PUBLISHER_QOS_DEFAULT, null /* listener */,
StatusKind.STATUS_MASK_NONE);
// --- Create topic --- //
/* Register type before creating topic */
String typeName = HelloWorldTypeSupport.get_type_name();
HelloWorldTypeSupport.register_type(participant, typeName);
/* To customize topic QoS, use
participant.get_default_topic_qos() instead */
topic = participant.create_topic(
"Example HelloWorld",
typeName, DomainParticipant.TOPIC_QOS_DEFAULT,
null /* listener */, StatusKind.STATUS_MASK_NONE);
// --- Create writer --- //
/* To customize data writer QoS, use
publisher.get_default_datawriter_qos() instead */
writer = (HelloWorldDataWriter)
publisher.create_datawriter(
topic, Publisher.DATAWRITER_QOS_DEFAULT,
null /* listener */, StatusKind.STATUS_MASK_NONE);
// --- Write --- //
/* Create data sample for writing */
HelloWorld instance = new HelloWorld();
InstanceHandle_t instance_handle = InstanceHandle_t.HANDLE_NIL;
/* For data type that has key, if the same instance is going to be
written multiple times, initialize the key here
and register the keyed instance prior to writing */
//instance_handle = writer.register_instance(instance);
final long sendPeriodMillis = 4 * 1000; // 4 seconds
for (int count = 0;
(sampleCount == 0) || (count < sampleCount);
++count) {
System.out.println("Writing HelloWorld, count " + count);
/* Modify the instance to be written here */
instance.msg = "Hello World! (" + count + ")";
/* Write data */
writer.write(instance, InstanceHandle_t.HANDLE_NIL);
try {
Thread.sleep(sendPeriodMillis);
} catch (InterruptedException ix) {
System.err.println("INTERRUPTED");
break;
}
}
//writer.unregister_instance(instance, instance_handle);
} finally {
// --- Shutdown --- //
if(participant != null) {
participant.delete_contained_entities();
DomainParticipantFactory.TheParticipantFactory.
delete_participant(participant);
}
/* RTI Connext provides finalize_instance()
method for people who want to release memory used by the
participant factory singleton. Uncomment the following block of
code for clean destruction of the participant factory
singleton. */
//DomainParticipantFactory.finalize_instance();
}
}
}

RTI Connext Java API Version 6.0.1 Copyright © Sat Nov 23 2019 Real-Time Innovations, Inc