public ReturnCode SetQos(SubscriberQos qos) { ReturnCode result = DDS.ReturnCode.AlreadyDeleted; ReportStack.Start(); if (this.rlReq_isAlive) { result = QosManager.checkQos(qos); if (result == DDS.ReturnCode.Ok) { using (OpenSplice.CustomMarshalers.SubscriberQosMarshaler marshaler = new OpenSplice.CustomMarshalers.SubscriberQosMarshaler()) { result = marshaler.CopyIn(qos); if (result == ReturnCode.Ok) { result = uResultToReturnCode( User.Subscriber.SetQos(rlReq_UserPeer, marshaler.UserPtr)); if (result != ReturnCode.Ok) { ReportStack.Report(result, "Could not apply SubscriberQos."); } } else { ReportStack.Report(result, "Could not copy SubscriberQos."); } } } } ReportStack.Flush(this, result != ReturnCode.Ok); return(result); }
internal ReturnCode init(DomainParticipant participant, string name, SubscriberQos qos) { ReturnCode result; MyDomainId = participant.MyDomainId; using (OpenSplice.CustomMarshalers.SubscriberQosMarshaler marshaler = new OpenSplice.CustomMarshalers.SubscriberQosMarshaler()) { result = marshaler.CopyIn(qos); if (result == ReturnCode.Ok) { IntPtr uSubscriber = User.Subscriber.New(participant.rlReq_UserPeer, name, marshaler.UserPtr); if (uSubscriber != IntPtr.Zero) { result = base.init(uSubscriber); } else { result = DDS.ReturnCode.Error; } } } if (result == ReturnCode.Ok) { this.participant = participant; } return(result); }
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 ReturnCode SetDefaultSubscriberQos(SubscriberQos qos) { ReturnCode result; using (OpenSplice.CustomMarshalers.SubscriberQosMarshaler marshaler = new OpenSplice.CustomMarshalers.SubscriberQosMarshaler()) { result = marshaler.CopyIn(qos); if (result == ReturnCode.Ok) { result = Gapi.DomainParticipant.set_default_subscriber_qos( GapiPeer, marshaler.GapiPtr); } } return(result); }
public ReturnCode SetQos(SubscriberQos qos) { DDS.ReturnCode result; using (OpenSplice.CustomMarshalers.SubscriberQosMarshaler marshaler = new OpenSplice.CustomMarshalers.SubscriberQosMarshaler()) { result = marshaler.CopyIn(qos); if (result == DDS.ReturnCode.Ok) { result = OpenSplice.Gapi.Subscriber.set_qos( GapiPeer, marshaler.GapiPtr); } } return(result); }
public ReturnCode GetQos(ref SubscriberQos qos) { ReturnCode result; using (OpenSplice.CustomMarshalers.SubscriberQosMarshaler marshaler = new OpenSplice.CustomMarshalers.SubscriberQosMarshaler()) { result = OpenSplice.Gapi.Subscriber.get_qos( GapiPeer, marshaler.GapiPtr); if (result == ReturnCode.Ok) { marshaler.CopyOut(ref qos); } } return(result); }
public ReturnCode GetQos(ref SubscriberQos qos) { IntPtr userQos = IntPtr.Zero; ReturnCode result = DDS.ReturnCode.AlreadyDeleted; ReportStack.Start(); if (this.rlReq_isAlive) { result = uResultToReturnCode( User.Subscriber.GetQos(rlReq_UserPeer, ref userQos)); if (result == ReturnCode.Ok) { using (OpenSplice.CustomMarshalers.SubscriberQosMarshaler marshaler = new OpenSplice.CustomMarshalers.SubscriberQosMarshaler(userQos, true)) { marshaler.CopyOut(ref qos); } } } ReportStack.Flush(this, result != ReturnCode.Ok); return(result); }