/// <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 static extern int mamaTransport_setTransportTopicCallback(IntPtr transport, TopicCallbackForwarder.TransportTopicCallbackDelegate callback, IntPtr closure);