public ListenerThread(Listener7 listener7, DDS.IEntity entity, int id) { this.listener7 = listener7; this.id = id; this.entity = entity; this.myThread = new Thread(Run); }
private static void runListeners(Listener7 listener7, DDS.IEntity entity, int id) { DDS.ReturnCode rc = DDS.ReturnCode.Error; System.Console.Out.WriteLine("Thread {0} started...", id); System.Threading.Thread.Sleep(0); if (entity is DDS.IDomainParticipant) { DDS.IDomainParticipantListener listener = new test.sacs.MyParticipantListener(); DDS.IDomainParticipant domainEntity = (DDS.IDomainParticipant)entity; rc = (domainEntity).SetListener(listener, DDS.StatusKind.DataAvailable); if (rc == DDS.ReturnCode.Ok) { rc = domainEntity.SetListener(null, 0); if (rc == DDS.ReturnCode.Ok) { rc = domainEntity.SetListener(listener, DDS.StatusKind.OfferedDeadlineMissed); } } } else { if (entity is DDS.IPublisher) { DDS.IPublisherListener listener = new test.sacs.MyPublisherListener(); DDS.IPublisher domainEntity = (DDS.IPublisher)entity; rc = domainEntity.SetListener(listener, DDS.StatusKind.RequestedDeadlineMissed); if (rc == DDS.ReturnCode.Ok) { rc = domainEntity.SetListener(null, 0); if (rc == DDS.ReturnCode.Ok) { rc = domainEntity.SetListener(listener, DDS.StatusKind.RequestedIncompatibleQos); } } } else { if (entity is DDS.IDataWriter) { DDS.DataWriterListener listener = new test.sacs.MyDataWriterListener(); DDS.IDataWriter domainEntity = (DDS.IDataWriter)entity; rc = (domainEntity).SetListener(listener, DDS.StatusKind.RequestedDeadlineMissed); if (rc == DDS.ReturnCode.Ok) { rc = domainEntity.SetListener(null, 0); if (rc == DDS.ReturnCode.Ok) { rc = domainEntity.SetListener(listener, DDS.StatusKind.RequestedIncompatibleQos); } } } else { if (entity is DDS.IDataReader) { DDS.IDataReaderListener listener = new test.sacs.MyDataReaderListener(); DDS.IDataReader domainEntity = (DDS.IDataReader)entity; rc = (domainEntity).SetListener(listener, DDS.StatusKind.OfferedDeadlineMissed); if (rc == DDS.ReturnCode.Ok) { rc = domainEntity.SetListener(null, 0); if (rc == DDS.ReturnCode.Ok) { rc = domainEntity.SetListener(listener, DDS.StatusKind.OfferedIncompatibleQos); } } } else { if (entity is DDS.ITopic) { DDS.TopicListener listener = new test.sacs.MyTopicListener(); DDS.ITopic domainEntity = (DDS.ITopic)entity; rc = (domainEntity).SetListener(listener, DDS.StatusKind.InconsistentTopic); if (rc == DDS.ReturnCode.Ok) { rc = domainEntity.SetListener(null, 0); if (rc == DDS.ReturnCode.Ok) { rc = domainEntity.SetListener(listener, DDS.StatusKind.InconsistentTopic); } } } else { if (entity is DDS.ISubscriber) { DDS.ISubscriberListener listener = new test.sacs.MySubscriberListener(); DDS.ISubscriber domainEntity = (DDS.ISubscriber)entity; rc = (domainEntity).SetListener(listener, DDS.StatusKind.OfferedDeadlineMissed); if (rc == DDS.ReturnCode.Ok) { rc = domainEntity.SetListener(null, 0); if (rc == DDS.ReturnCode.Ok) { rc = domainEntity.SetListener(listener, DDS.StatusKind.DataOnReaders); } } } else { System.Console.Out.WriteLine("Entity type: " + entity.ToString() + " not supported."); } } } } } } System.Console.Out.WriteLine("Thread " + id + " finished."); }