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;
try {
participant = DomainParticipantFactory.TheParticipantFactory.
create_participant(
domainId, DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT,
null , StatusKind.STATUS_MASK_NONE);
publisher = participant.create_publisher(
DomainParticipant.PUBLISHER_QOS_DEFAULT, null ,
StatusKind.STATUS_MASK_NONE);
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);
writer = (HelloWorldDataWriter)
publisher.create_datawriter(
topic, Publisher.DATAWRITER_QOS_DEFAULT,
null , StatusKind.STATUS_MASK_NONE);
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, count " + count);
instance.data = 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);
}
}
}
}