using System.Collections.Generic;
public class HelloWorldSubscriber {
public class HelloWorldListener :
DDS.DataReaderListener {
public override void on_requested_deadline_missed(
public override void on_requested_incompatible_qos(
public override void on_sample_rejected(
public override void on_liveliness_changed(
public override void on_sample_lost(
public override void on_subscription_matched(
HelloWorldDataReader HelloWorld_reader =
(HelloWorldDataReader)reader;
try {
HelloWorld_reader.take(
data_seq,
info_seq,
}
return;
}
Console.WriteLine("take error {0}", e);
return;
}
System.Int32 data_length = data_seq.length;
for (int i = 0; i < data_length; ++i) {
if (info_seq.get_at(i).valid_data) {
HelloWorldTypeSupport.print_data(data_seq.get_at(i));
}
}
try {
HelloWorld_reader.return_loan(data_seq, info_seq);
}
Console.WriteLine("return loan error {0}", e);
}
}
public HelloWorldListener() {
data_seq = new HelloWorldSeq();
}
private HelloWorldSeq data_seq;
};
public static void Main(string[] args) {
int domain_id = 0;
if (args.Length >= 1) {
domain_id = Int32.Parse(args[0]);
}
int sample_count = 0;
if (args.Length >= 2) {
sample_count = Int32.Parse(args[1]);
}
try {
HelloWorldSubscriber.subscribe(
domain_id, sample_count);
}
Console.WriteLine("error in subscriber");
}
}
static void subscribe(int domain_id, int sample_count) {
domain_id,
null ,
DDS.StatusMask.STATUS_MASK_NONE);
if (participant == null) {
shutdown(participant);
throw new ApplicationException("create_participant error");
}
null ,
DDS.StatusMask.STATUS_MASK_NONE);
if (subscriber == null) {
shutdown(participant);
throw new ApplicationException("create_subscriber error");
}
System.String type_name = HelloWorldTypeSupport.get_type_name();
try {
HelloWorldTypeSupport.register_type(
participant, type_name);
}
Console.WriteLine("register_type error {0}", e);
shutdown(participant);
throw e;
}
DDS.
Topic topic = participant.create_topic(
"Example HelloWorld",
type_name,
null ,
DDS.StatusMask.STATUS_MASK_NONE);
if (topic == null) {
shutdown(participant);
throw new ApplicationException("create_topic error");
}
HelloWorldListener reader_listener =
new HelloWorldListener();
topic,
reader_listener,
DDS.StatusMask.STATUS_MASK_ALL);
if (reader == null) {
shutdown(participant);
reader_listener = null;
throw new ApplicationException("create_datareader error");
}
const System.Int32 receive_period = 4000;
for (int count=0;
(sample_count == 0) || (count < sample_count);
++count) {
Console.WriteLine(
"HelloWorld subscriber sleeping for {0} sec...",
receive_period / 1000);
System.Threading.Thread.Sleep(receive_period);
}
shutdown(participant);
reader_listener = null;
}
static void shutdown(
if (participant != null) {
participant.delete_contained_entities();
ref participant);
}
}
}