public CallbackForwarder( MamaDictionary sender, MamaDictionaryCallback callback) { this.mSender = sender; this.mCallback = callback; }
/// <summary> /// Create a data dictionary from a subscription /// </summary> public void create( MamaQueue queue, MamaDictionaryCallback callback, MamaSource source, int retries, double timeout) { mCallbackForwarder = new CallbackForwarder(this, callback); IntPtr queuePtr = queue != null ? queue.NativeHandle : IntPtr.Zero; IntPtr sourcePtr = source != null ? source.NativeHandle : IntPtr.Zero; mCallbacks = mCallbackForwarder.getMsgCallbacks(); int code = NativeMethods.mama_createDictionary(ref nativeHandle, queuePtr, mCallbacks, sourcePtr, timeout, retries, nativeHandle); CheckResultCode(code); GC.KeepAlive(source); GC.KeepAlive(queue); }