/// <summary> /// Set the transport topic callback. It receives advisories when /// subjects sub or unsub, or when publisher events occur. /// Passing NULL removes the callback. /// </summary> /// <param name="callback"></param> public void setTransportTopicCallback(MamaTransportTopicCallback callback) { EnsurePeerCreated(); if (callback == null) { mTopicCallbackForwarder = null; mTopicCallback = null; } else { mTopicCallbackForwarder = new TopicCallbackForwarder(this, callback); mTopicCallback = new TopicCallbackForwarder.TransportTopicCallbackDelegate(mTopicCallbackForwarder.OnTransportTopicCallback); } int code = NativeMethods.mamaTransport_setTransportTopicCallback(nativeHandle, mTopicCallback, nativeHandle); CheckResultCode(code); GC.KeepAlive(callback); }
public TopicCallbackForwarder(MamaTransport target, MamaTransportTopicCallback callback) { this.mTarget = target; this.mCallback = callback; }