/// <summary> /// Set the parameters for a subscription that may be actually activated later. /// Activate the subscription using MamaSubscription.activate(). /// </summary> /// <param name="transport"> /// The MAMA transport. /// </param> /// <param name="queue"> /// The MAMA queue. /// </param> /// <param name="callback"> /// The callback interface. /// </param> /// <param name="sourceName"> /// The name of the source identifying the publisher for this symbol. /// </param> /// <param name="symbol"> /// The symbol for the listener. /// </param> /// <param name="closure"> /// The caller supplied closure. /// </param> public void setup(MamaQueue queue, MamaTransport transport, MamaSubscriptionCallback callback, string sourceName, string symbol, object closure) { // Verify that the subscription has been created EnsurePeerCreated(); // Save arguments in member variables base.mClosure = closure; base.mQueue = queue; base.mTransport = transport; // Create the impl IntPtr impl = MamaSubscriptionImpl.Create(callback, closure, this); // Call into the native layer to setup the subscription CheckResultCode(SubscriptionNativeMethods.mamaSubscription_setup2( NativeHandle, transport.NativeHandle, queue.NativeHandle, ref MamaBasicSubscription.mCallbackDelegates, sourceName, symbol, impl)); }