[$(HOME)/rti_workspace//examples/connext_dds/java/hello_world_wan/HelloWorldPublisher.java]
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 static void main(String[] args) {
int domainId = 0;
if (args.length >= 1) {
domainId = Integer.valueOf(args[0]).intValue();
}
int sampleCount = 0;
if (args.length >= 2) {
sampleCount = Integer.valueOf(args[1]).intValue();
}
publisherMain(domainId, sampleCount);
}
private HelloWorldPublisher() {
super();
}
private static void publisherMain(int domainId, int sampleCount) {
DomainParticipant participant = null;
Publisher publisher = null;
Topic topic = null;
HelloWorldDataWriter writer = null;
DomainParticipantQos participant_qos = new DomainParticipantQos();
String WAN_SERVER = "127.0.0.1";
String WAN_ID = "1";
boolean USE_SECURITY = false;
String WAN_LIB = "nddstransportwan";
try {
DomainParticipantFactory.TheParticipantFactory.get_default_participant_qos(
participant_qos);
participant_qos.transport_builtin.mask =
TransportBuiltinKind.MASK_NONE;
PropertyQosPolicyHelper.add_property(participant_qos.property,
"dds.transport.load_plugins", "dds.transport.wan_plugin.wan", false);
PropertyQosPolicyHelper.add_property(participant_qos.property,
"dds.transport.wan_plugin.wan.library",
WAN_LIB, false);
PropertyQosPolicyHelper.add_property(participant_qos.property,
"dds.transport.wan_plugin.wan.create_function", "NDDS_Transport_WAN_create", false);
if (USE_SECURITY) {
System.out.println("Enabling secure WAN transport");
PropertyQosPolicyHelper.add_property(participant_qos.property,
"dds.transport.wan_plugin.wan.enable_security", "1", false);
PropertyQosPolicyHelper.add_property(participant_qos.property,
"dds.transport.wan_plugin.wan.tls.verify.ca_file", "cacert.pem", false);
PropertyQosPolicyHelper.add_property(participant_qos.property,
"dds.transport.wan_plugin.wan.tls.identity.certificate_chain_file", "peer1.pem", false);
}
PropertyQosPolicyHelper.add_property(participant_qos.property,
"dds.transport.wan_plugin.wan.server", WAN_SERVER, false);
PropertyQosPolicyHelper.add_property(participant_qos.property,
"dds.transport.wan_plugin.wan.transport_instance_id", WAN_ID, false);
participant = DomainParticipantFactory.TheParticipantFactory.
create_participant(
domainId, participant_qos,
null , StatusKind.STATUS_MASK_NONE);
if (participant == null) {
System.err.println("create_participant error\n");
return;
}
publisher = participant.create_publisher(
DomainParticipant.PUBLISHER_QOS_DEFAULT, null ,
StatusKind.STATUS_MASK_NONE);
if (publisher == null) {
System.err.println("create_publisher error\n");
return;
}
String typeName = HelloWorldTypeSupport.get_type_name();
HelloWorldTypeSupport.register_type(participant, typeName);
topic = participant.create_topic(
"Example HelloWorld",
typeName, DomainParticipant.TOPIC_QOS_DEFAULT,
null , StatusKind.STATUS_MASK_NONE);
if (topic == null) {
System.err.println("create_topic error\n");
return;
}
writer = (HelloWorldDataWriter)
publisher.create_datawriter(
topic, Publisher.DATAWRITER_QOS_DEFAULT,
null , StatusKind.STATUS_MASK_NONE);
if (writer == null) {
System.err.println("create_datawriter error\n");
return;
}
HelloWorld instance = new HelloWorld();
InstanceHandle_t instance_handle = InstanceHandle_t.HANDLE_NIL;
final long sendPeriodMillis = 4 * 1000;
for (int count = 0;
(sampleCount == 0) || (count < sampleCount);
++count) {
System.out.println("Writing HelloWorld to WAN, count " + count);
instance.msg = "Hello Wide Area World! (" + count + ")";
writer.write(instance, instance_handle);
try {
Thread.sleep(sendPeriodMillis);
} catch (InterruptedException ix) {
System.err.println("INTERRUPTED");
break;
}
}
} finally {
if(participant != null) {
participant.delete_contained_entities();
DomainParticipantFactory.TheParticipantFactory.
delete_participant(participant);
}
}
}
}