public ISubscriber CreateSubscriber(SubscriberQos qos, ISubscriberListener listener, StatusKind mask) { ISubscriber subscriber = null; using (OpenSplice.CustomMarshalers.SubscriberQosMarshaler marshaler = new OpenSplice.CustomMarshalers.SubscriberQosMarshaler()) { if (marshaler.CopyIn(qos) == ReturnCode.Ok) { if (listener != null) { OpenSplice.Gapi.gapi_subscriberListener gapiListener; SubscriberListenerHelper listenerHelper = new SubscriberListenerHelper(); listenerHelper.Listener = listener; listenerHelper.CreateListener(out gapiListener); using (SubscriberListenerMarshaler listenerMarshaler = new SubscriberListenerMarshaler(ref gapiListener)) { IntPtr gapiPtr = Gapi.DomainParticipant.create_subscriber( GapiPeer, marshaler.GapiPtr, listenerMarshaler.GapiPtr, mask); if (gapiPtr != IntPtr.Zero) { subscriber = new Subscriber(gapiPtr, listenerHelper); } } } else { // Invoke the corresponding gapi function. IntPtr gapiPtr = Gapi.DomainParticipant.create_subscriber( GapiPeer, marshaler.GapiPtr, IntPtr.Zero, mask); if (gapiPtr != IntPtr.Zero) { subscriber = new Subscriber(gapiPtr); } } } } if (subscriber != null) { DomainParticipantQos dpQos = null; ReturnCode result = GetQos(ref dpQos); if (result == ReturnCode.Ok) { if (dpQos.EntityFactory.AutoenableCreatedEntities) { subscriber.Enable(); } } } return(subscriber); }
public ISubscriber CreateSubscriber(ISubscriberListener listener, StatusKind mask) { ISubscriber subscriber = null; if (listener != null) { OpenSplice.Gapi.gapi_subscriberListener gapiListener; SubscriberListenerHelper listenerHelper = new SubscriberListenerHelper(); listenerHelper.Listener = listener; listenerHelper.CreateListener(out gapiListener); using (SubscriberListenerMarshaler listenerMarshaler = new SubscriberListenerMarshaler(ref gapiListener)) { IntPtr gapiPtr = Gapi.DomainParticipant.create_subscriber( GapiPeer, Gapi.NativeConstants.GapiSubscriberQosDefault, listenerMarshaler.GapiPtr, mask); if (gapiPtr != IntPtr.Zero) { subscriber = new Subscriber(gapiPtr, listenerHelper); } } } else { IntPtr gapiPtr = Gapi.DomainParticipant.create_subscriber( GapiPeer, Gapi.NativeConstants.GapiSubscriberQosDefault, IntPtr.Zero, mask); if (gapiPtr != IntPtr.Zero) { subscriber = new Subscriber(gapiPtr); } } if (subscriber != null) { DomainParticipantQos dpQos = null; ReturnCode result = GetQos(ref dpQos); if (result == ReturnCode.Ok) { if (dpQos.EntityFactory.AutoenableCreatedEntities) { subscriber.Enable(); } } } return(subscriber); }
public ISubscriber CreateSubscriber(SubscriberQos qos, ISubscriberListener listener, StatusKind mask) { ISubscriber subscriber = null; using (OpenSplice.CustomMarshalers.SubscriberQosMarshaler marshaler = new OpenSplice.CustomMarshalers.SubscriberQosMarshaler()) { if (marshaler.CopyIn(qos) == ReturnCode.Ok) { if (listener != null) { OpenSplice.Gapi.gapi_subscriberListener gapiListener; SubscriberListenerHelper listenerHelper = new SubscriberListenerHelper(); listenerHelper.Listener = listener; listenerHelper.CreateListener(out gapiListener); using (SubscriberListenerMarshaler listenerMarshaler = new SubscriberListenerMarshaler(ref gapiListener)) { IntPtr gapiPtr = Gapi.DomainParticipant.create_subscriber( GapiPeer, marshaler.GapiPtr, listenerMarshaler.GapiPtr, mask); if (gapiPtr != IntPtr.Zero) { subscriber = new Subscriber(gapiPtr, listenerHelper); } } } else { // Invoke the corresponding gapi function. IntPtr gapiPtr = Gapi.DomainParticipant.create_subscriber( GapiPeer, marshaler.GapiPtr, IntPtr.Zero, mask); if (gapiPtr != IntPtr.Zero) { subscriber = new Subscriber(gapiPtr); } } } } if (subscriber != null) { DomainParticipantQos dpQos = null; ReturnCode result = GetQos(ref dpQos); if (result == ReturnCode.Ok) { if (dpQos.EntityFactory.AutoenableCreatedEntities) { subscriber.Enable(); } } } return subscriber; }
public ISubscriber CreateSubscriber(ISubscriberListener listener, StatusKind mask) { ISubscriber subscriber = null; if (listener != null) { OpenSplice.Gapi.gapi_subscriberListener gapiListener; SubscriberListenerHelper listenerHelper = new SubscriberListenerHelper(); listenerHelper.Listener = listener; listenerHelper.CreateListener(out gapiListener); using (SubscriberListenerMarshaler listenerMarshaler = new SubscriberListenerMarshaler(ref gapiListener)) { IntPtr gapiPtr = Gapi.DomainParticipant.create_subscriber( GapiPeer, Gapi.NativeConstants.GapiSubscriberQosDefault, listenerMarshaler.GapiPtr, mask); if (gapiPtr != IntPtr.Zero) { subscriber = new Subscriber(gapiPtr, listenerHelper); } } } else { IntPtr gapiPtr = Gapi.DomainParticipant.create_subscriber( GapiPeer, Gapi.NativeConstants.GapiSubscriberQosDefault, IntPtr.Zero, mask); if (gapiPtr != IntPtr.Zero) { subscriber = new Subscriber(gapiPtr); } } if (subscriber != null) { DomainParticipantQos dpQos = null; ReturnCode result = GetQos(ref dpQos); if (result == ReturnCode.Ok) { if (dpQos.EntityFactory.AutoenableCreatedEntities) { subscriber.Enable(); } } } return subscriber; }
internal Subscriber(IntPtr gapiPtr, SubscriberListenerHelper listenerHelper) : base(gapiPtr) { // Base class handles everything. this.listenerHelper = listenerHelper; }
internal Subscriber(IntPtr gapiPtr) : base(gapiPtr) { // Base class handles everything. listenerHelper = new SubscriberListenerHelper(); }