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 IMessage RecieveDelegate (RabbitMQMessageQueue q, IModel model) { if (matcher == null) return q.Receive (model, timeout, ack); else return q.Receive (model, timeout, ack, matcher); }
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(); } }
public TxReceiver(RabbitMQMessageQueue q, RecieveDelegate doReceive) { this.q = q; this.doReceive = doReceive; }
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 (); } }