예제 #1
0
 public static extern int mamaFtMember_setup(
     IntPtr member,
     mamaFtType fttype,
     IntPtr eventQueue,
     CallbackForwarder.FtMemberCallbackDelegate callback,
     IntPtr transport,
     string groupName,
     uint weight,
     double heartbeatInterval,
     double timeoutInterval,
     object closure);
예제 #2
0
        protected void setupFtType(
            mamaFtType ftType,
            MamaQueue queue,
            MamaFtMemberCallback callback,
            MamaTransport transport,
            string groupName,
            uint weight,
            double heartbeatInterval,
            double timeoutInterval,
            object closure)
        {
            EnsurePeerCreated();
            if (callback == null)
            {
                mCallbackForwarder = null;
                mCallback          = null;
            }
            else
            {
                mCallbackForwarder = new CallbackForwarder(this, callback, closure);
                mCallback          = new CallbackForwarder.FtMemberCallbackDelegate(mCallbackForwarder.OnFtStateChange);
            }
            IntPtr queueHandle     = queue != null ? queue.NativeHandle : IntPtr.Zero;
            IntPtr transportHandle = transport != null ? transport.NativeHandle : IntPtr.Zero;
            int    code            = NativeMethods.mamaFtMember_setup(
                nativeHandle,
                mamaFtType.MAMA_FT_TYPE_MULTICAST,
                queueHandle,
                mCallback,
                transportHandle,
                groupName,
                weight,
                heartbeatInterval,
                timeoutInterval,
                null);

            CheckResultCode(code);
        }
예제 #3
0
		protected void setupFtType(
			mamaFtType ftType,
			MamaQueue queue,
			MamaFtMemberCallback callback,
			MamaTransport transport,
			string groupName,
			uint weight,
			double heartbeatInterval,
			double timeoutInterval,
			object closure)
		{
			EnsurePeerCreated();
			if (callback == null)
			{
				mCallbackForwarder = null;
				mCallback = null;
			}
			else
			{
				mCallbackForwarder = new CallbackForwarder(this, callback, closure);
				mCallback = new CallbackForwarder.FtMemberCallbackDelegate(mCallbackForwarder.OnFtStateChange);
			}
			IntPtr queueHandle = queue != null ? queue.NativeHandle : IntPtr.Zero;
			IntPtr transportHandle = transport != null ? transport.NativeHandle : IntPtr.Zero;
			int code = NativeMethods.mamaFtMember_setup(
				nativeHandle,
				mamaFtType.MAMA_FT_TYPE_MULTICAST,
				queueHandle,
				mCallback,
				transportHandle,
				groupName,
				weight,
				heartbeatInterval,
				timeoutInterval,
				null);
			CheckResultCode(code);
		}
예제 #4
0
			public static extern int mamaFtMember_setup(
				IntPtr member,
				mamaFtType fttype,
				IntPtr eventQueue,
				CallbackForwarder.FtMemberCallbackDelegate callback,
				IntPtr transport,
				string groupName,
				uint weight,
				double heartbeatInterval,
				double timeoutInterval,
				object closure);