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 static V_RESULT CopyOut(IntPtr fromPtr, IntPtr toPtr) { v_status from = (v_status)Marshal.PtrToStructure(fromPtr, type); GCHandle toGCHandle = GCHandle.FromIntPtr(toPtr); DDS.OpenSplice.Common.EntityStatus to = toGCHandle.Target as DDS.OpenSplice.Common.EntityStatus; V_RESULT result = CopyOut(ref from, to); toGCHandle.Target = to; return(result); }
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 abstract void NotifyListener(Entity source, V_EVENT triggerMask, DDS.OpenSplice.Common.EntityStatus status);
internal static V_RESULT CopyOut(ref v_status from, DDS.OpenSplice.Common.EntityStatus to) { to.State = (uint)from.state; return(V_RESULT.OK); }