示例#1
0
        /// <summary>
        /// Specify a set of callbacks which may be invoked in response to certain
        /// conditions arising on the queue.
        /// </summary>
        /// <remarks>
        /// The behaviour here is middleware specific as not all will support all
        /// callbacks.
        /// <para>
        /// LBM: When the high watermark is exceeded the
        /// mamaQueueHighWatermarkExceededCb callback will invoked each time an event
        /// on the queue is dispatched until such time as the number of events on the
        /// queue falls below the high watermark.</para>
        /// <para>RV: Not currently supported.</para>
        /// </remarks>
        public void setQueueMonitorCallbacks(MamaQueueMonitorCallback callback, object closure)
        {
            EnsurePeerCreated();
            mWatermarkCallbackForwarder = new WatermarkCallbackForwarder(this, callback, closure);
            mWatermarkShimCallbacks.mHighWatermarkExceededShimCallback = new WatermarkCallbackForwarder.HighWatermarkExceededCallback(mWatermarkCallbackForwarder.HighWatermarkExceeded);
            mWatermarkShimCallbacks.mLowWatermarkShimCallback          = new WatermarkCallbackForwarder.LowWatermarkCallback(mWatermarkCallbackForwarder.LowWatermark);
            int code = NativeMethods.mamaQueue_setQueueMonitorCallbacks(nativeHandle, ref mWatermarkShimCallbacks, IntPtr.Zero);

            CheckResultCode(code);
        }
示例#2
0
			public WatermarkCallbackForwarder(MamaQueue sender, MamaQueueMonitorCallback callback, object closure)
			{
				mSender = sender;
				mCallback = callback;
				mClosure = closure;
			}
示例#3
0
		/// <summary>
		/// Specify a set of callbacks which may be invoked in response to certain
		/// conditions arising on the queue.
		/// </summary>
		/// <remarks>
		/// The behaviour here is middleware specific as not all will support all
		/// callbacks.
		/// <para>
		/// LBM: When the high watermark is exceeded the
		/// mamaQueueHighWatermarkExceededCb callback will invoked each time an event
		/// on the queue is dispatched until such time as the number of events on the
		/// queue falls below the high watermark.</para>
        /// <para>RV: Not currently supported.</para>
		/// </remarks>
		public void setQueueMonitorCallbacks(MamaQueueMonitorCallback callback, object closure)
		{
			EnsurePeerCreated();
			mWatermarkCallbackForwarder = new WatermarkCallbackForwarder(this, callback, closure);
			mWatermarkShimCallbacks.mHighWatermarkExceededShimCallback = new WatermarkCallbackForwarder.HighWatermarkExceededCallback(mWatermarkCallbackForwarder.HighWatermarkExceeded);
			mWatermarkShimCallbacks.mLowWatermarkShimCallback = new WatermarkCallbackForwarder.LowWatermarkCallback(mWatermarkCallbackForwarder.LowWatermark);
			int code = NativeMethods.mamaQueue_setQueueMonitorCallbacks(nativeHandle, ref mWatermarkShimCallbacks, IntPtr.Zero);
			CheckResultCode(code);
		}
示例#4
0
 public WatermarkCallbackForwarder(MamaQueue sender, MamaQueueMonitorCallback callback, object closure)
 {
     mSender   = sender;
     mCallback = callback;
     mClosure  = closure;
 }