internal static void CopyIn(ref OpenSplice.Gapi.gapi_dataReaderListener from, IntPtr to, int offset) { // Set listener_data field // Marshal.WriteIntPtr(to, offset + offset_listener_data, from.listener_data); BaseMarshaler.Write(to, offset + offset_listener_data, IntPtr.Zero); // Set callback fields BaseMarshaler.Write(to, offset + offset_on_requested_deadline_missed, MarshalHelper.GetIntPtrForDelegate(from.on_requested_deadline_missed)); BaseMarshaler.Write(to, offset + offset_on_requested_incompatible_qos, MarshalHelper.GetIntPtrForDelegate(from.on_requested_incompatible_qos)); BaseMarshaler.Write(to, offset + offset_on_sample_rejected, MarshalHelper.GetIntPtrForDelegate(from.on_sample_rejected)); BaseMarshaler.Write(to, offset + offset_on_liveliness_changed, MarshalHelper.GetIntPtrForDelegate(from.on_liveliness_changed)); BaseMarshaler.Write(to, offset + offset_on_data_available, MarshalHelper.GetIntPtrForDelegate(from.on_data_available)); BaseMarshaler.Write(to, offset + offset_on_subscription_match, MarshalHelper.GetIntPtrForDelegate(from.on_subscription_match)); BaseMarshaler.Write(to, offset + offset_on_sample_lost, MarshalHelper.GetIntPtrForDelegate(from.on_sample_lost)); }
internal void CreateListener(out OpenSplice.Gapi.gapi_dataReaderListener listener) { onRequestedDeadlineMissedDelegate = PrivateRequestedDeadlineMissed; onRequestedIncompatibleQosDelegate = PrivateRequestedIncompatibleQos; onSampleRejectedDelegate = PrivateSampleRejected; onLivelinessChangedDelegate = PrivateLivelinessChanged; onDataAvailableDelegate = PrivateDataAvailable; onSubscriptionMatchDelegate = PrivateSubscriptionMatched; onSampleLostDelegate = PrivateSampleLost; listener = new DDS.OpenSplice.Gapi.gapi_dataReaderListener(); listener.listener_data = IntPtr.Zero; listener.on_requested_deadline_missed = onRequestedDeadlineMissedDelegate; listener.on_requested_incompatible_qos = onRequestedIncompatibleQosDelegate; listener.on_sample_rejected = onSampleRejectedDelegate; listener.on_liveliness_changed = onLivelinessChangedDelegate; listener.on_data_available = onDataAvailableDelegate; listener.on_subscription_match = onSubscriptionMatchDelegate; listener.on_sample_lost = onSampleLostDelegate; }
public DataReaderListenerMarshaler(ref OpenSplice.Gapi.gapi_dataReaderListener listener) : this() { CopyIn(ref listener, GapiPtr, 0); cleanupRequired = true; }