Example #1
0
 public IMessageQueue GetMessageQueue(QueueReference qRef)
 {
     qLock.AcquireReaderLock(TIMEOUT);
     try
     {
         if (queues.Contains(qRef))
         {
             return((IMessageQueue)queues[qRef]);
         }
         else
         {
             LockCookie lc = qLock.UpgradeToWriterLock(TIMEOUT);
             try
             {
                 IMessageQueue mq = new RabbitMQMessageQueue(this, qRef,
                                                             false);
                 queues[qRef] = mq;
                 return(mq);
             }
             finally
             {
                 qLock.DowngradeFromWriterLock(ref lc);
             }
         }
     }
     finally
     {
         qLock.ReleaseReaderLock();
     }
 }
Example #2
0
			public IMessage RecieveDelegate (RabbitMQMessageQueue q, IModel model)
			{
				if (matcher == null)
					return q.Receive (model, timeout, ack);
				else
					return q.Receive (model, timeout, ack, matcher);
			}
Example #3
0
 public IMessageQueue CreateMessageQueue(QueueReference qRef,
                                         bool transactional)
 {
     qLock.AcquireWriterLock(TIMEOUT);
     try {
         IMessageQueue mq = new RabbitMQMessageQueue(this, qRef, transactional);
         queues[qRef] = mq;
         return(mq);
     } finally {
         qLock.ReleaseWriterLock();
     }
 }
Example #4
0
			public TxReceiver(RabbitMQMessageQueue q, RecieveDelegate doReceive) {
				this.q = q;
				this.doReceive = doReceive;
			}
Example #5
0
 public void DeleteQueue(QueueReference qRef)
 {
     RabbitMQMessageQueue.Delete(qRef);
 }
		public IMessageQueue GetMessageQueue (QueueReference qRef)
		{
			qLock.AcquireReaderLock (TIMEOUT);
			try {
				if (queues.Contains (qRef))
					return (IMessageQueue) queues[qRef];
				else {
					LockCookie lc = qLock.UpgradeToWriterLock (TIMEOUT);
					try {
						IMessageQueue mq = new RabbitMQMessageQueue (this, qRef, false);
						queues[qRef] = mq;
						return mq;
					} finally {
						qLock.DowngradeFromWriterLock (ref lc);
					}
				}
			} finally {
				qLock.ReleaseReaderLock ();
			}
		}
		public IMessageQueue CreateMessageQueue (QueueReference qRef,
		                                         bool transactional)
		{
			qLock.AcquireWriterLock (TIMEOUT);
			try {
				IMessageQueue mq = new RabbitMQMessageQueue (this, qRef, transactional);
				queues[qRef] = mq;
				return mq;
			} finally {
				qLock.ReleaseWriterLock ();
			}
		}