internal override void NotifyListener(Entity source, V_EVENT triggerMask, DDS.OpenSplice.Common.EntityStatus status) { IPublisherListener pubListener = listener as IPublisherListener; if (pubListener != null) { DDS.OpenSplice.Common.WriterStatus writerStatus = status as DDS.OpenSplice.Common.WriterStatus; if ((triggerMask & V_EVENT.LIVELINESS_LOST) == V_EVENT.LIVELINESS_LOST) { pubListener.OnLivelinessLost(source as IDataWriter, writerStatus.LivelinessLost); } if ((triggerMask & V_EVENT.OFFERED_DEADLINE_MISSED) == V_EVENT.OFFERED_DEADLINE_MISSED) { pubListener.OnOfferedDeadlineMissed(source as IDataWriter, writerStatus.DeadlineMissed); } if ((triggerMask & V_EVENT.OFFERED_INCOMPATIBLE_QOS) == V_EVENT.OFFERED_INCOMPATIBLE_QOS) { pubListener.OnOfferedIncompatibleQos(source as IDataWriter, writerStatus.IncompatibleQos); } if ((triggerMask & V_EVENT.PUBLICATION_MATCHED) == V_EVENT.PUBLICATION_MATCHED) { pubListener.OnPublicationMatched(source as IDataWriter, writerStatus.PublicationMatch); } } }
internal override void NotifyListener(Entity source, V_EVENT triggerMask, DDS.OpenSplice.Common.EntityStatus status) { ReturnCode result; ISubscriberListener subListener = listener as ISubscriberListener; if (subListener != null) { DDS.OpenSplice.Common.ReaderStatus readerStatus = status as DDS.OpenSplice.Common.ReaderStatus; if ((triggerMask & V_EVENT.ON_DATA_ON_READERS) == V_EVENT.ON_DATA_ON_READERS) { result = ResetDataAvailableStatus(); if (result == DDS.ReturnCode.Ok) { subListener.OnDataOnReaders(source as ISubscriber); } } else { if ((triggerMask & V_EVENT.DATA_AVAILABLE) == V_EVENT.DATA_AVAILABLE) { result = ResetDataAvailableStatus(); if (result == DDS.ReturnCode.Ok) { subListener.OnDataAvailable(source as IDataReader); } } } if ((triggerMask & V_EVENT.SAMPLE_REJECTED) == V_EVENT.SAMPLE_REJECTED) { subListener.OnSampleRejected(source as IDataReader, readerStatus.SampleRejected); } if ((triggerMask & V_EVENT.LIVELINESS_CHANGED) == V_EVENT.LIVELINESS_CHANGED) { subListener.OnLivelinessChanged(source as IDataReader, readerStatus.LivelinessChanged); } if ((triggerMask & V_EVENT.SAMPLE_LOST) == V_EVENT.SAMPLE_LOST) { subListener.OnSampleLost(source as IDataReader, readerStatus.SampleLost); } if ((triggerMask & V_EVENT.REQUESTED_DEADLINE_MISSED) == V_EVENT.REQUESTED_DEADLINE_MISSED) { subListener.OnRequestedDeadlineMissed(source as IDataReader, readerStatus.DeadlineMissed); } if ((triggerMask & V_EVENT.REQUESTED_INCOMPATIBLE_QOS) == V_EVENT.REQUESTED_INCOMPATIBLE_QOS) { subListener.OnRequestedIncompatibleQos(source as IDataReader, readerStatus.IncompatibleQos); } if ((triggerMask & V_EVENT.SUBSCRIPTION_MATCHED) == V_EVENT.SUBSCRIPTION_MATCHED) { subListener.OnSubscriptionMatched(source as IDataReader, readerStatus.SubscriptionMatch); } } }
internal override void NotifyListener(Entity source, V_EVENT triggerMask, DDS.OpenSplice.Common.EntityStatus status) { ITopicListener tpListener = listener as ITopicListener; if (tpListener != null) { DDS.OpenSplice.Common.TopicStatus topicStatus = status as DDS.OpenSplice.Common.TopicStatus; if ((triggerMask & V_EVENT.INCONSISTENT_TOPIC) == V_EVENT.INCONSISTENT_TOPIC) { tpListener.OnInconsistentTopic(source as ITopic, topicStatus.InconsistentTopic); } /*if ((triggerMask & V_EVENT.ALL_DATA_DISPOSED) == V_EVENT.ALL_DATA_DISPOSED) * { * IDomainParticipantListener dpExtListener = listener as IExtDomainParticipantListener; * Debug.Assert(dpExtListener != null); * dpExtListener.OnAllDataDisposed(source as ITopic); * }*/ } }
internal static extern v_statusResult Reset(IntPtr s, V_EVENT mask);
internal abstract void NotifyListener(Entity source, V_EVENT triggerMask, DDS.OpenSplice.Common.EntityStatus status);