Exemplo n.º 1
0
 /// <summary>
 /// Set up the object. This is only an
 /// initialization function. In order to actually start the fault
 /// tolerance monitoring, use <see cref="MamaFtMember.activate"/>
 /// </summary>
 public new void setup(
     MamaQueue queue,
     MamaFtMemberCallback callback,
     MamaTransport transport,
     string groupName,
     uint weight,
     double heartbeatInterval,
     double timeoutInterval,
     object closure)
 {
     setupFtType(
         mamaFtType.MAMA_FT_TYPE_BRIDGE,
         queue,
         callback,
         transport,
         groupName,
         weight,
         heartbeatInterval,
         timeoutInterval,
         closure);
 }
Exemplo n.º 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);
        }
Exemplo n.º 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);
		}
Exemplo n.º 4
0
 public CallbackForwarder(MamaFtMember target, MamaFtMemberCallback callback, object closure)
 {
     mTarget   = target;
     mCallback = callback;
     mClosure  = closure;
 }
Exemplo n.º 5
0
		public void setup(
			MamaQueue queue,
			MamaFtMemberCallback callback,
			MamaTransport transport,
			string groupName,
			uint weight,
			double heartbeatInterval,
			double timeoutInterval,
			object closure)
		{
			setupFtType (
				mamaFtType.MAMA_FT_TYPE_MULTICAST,
				queue,
				callback,
				transport,
				groupName,
				weight,
				heartbeatInterval,
				timeoutInterval,
				closure);
		}
Exemplo n.º 6
0
			public CallbackForwarder(MamaFtMember target, MamaFtMemberCallback callback, object closure)
			{
				mTarget = target;
				mCallback = callback;
				mClosure = closure;
			}