コード例 #1
0
ファイル: NmsConsumer.cs プロジェクト: cylwit/EasyNMS
 private NmsConsumer(INmsConnection connection, Destination destination, string selector)
 {
     this.id = idCounter++;
     this.selector = selector;
     this.destination = destination;
     this.connection = connection;
     this.connection.ConnectionInterrupted += new EventHandler<NmsConnectionEventArgs>(connection_ConnectionInterrupted);
     this.connection.ConnectionResumed += new EventHandler<NmsConnectionEventArgs>(connection_ConnectionResumed);
 }
コード例 #2
0
ファイル: NmsMultiConsumer.cs プロジェクト: cylwit/EasyNMS
 internal NmsMultiConsumer(INmsConnection connection, Destination destination, int consumerCount, Func<MessageFactory, IMessage, IMessage> messageReceivedCallback, string selector = null)
     : this()
 {
     for (int i = 0; i < consumerCount; i++)
     {
         log.Debug("[{2}] Creating consumer #{0} to destination {1}", i, destination, connection.ID);
         var consumer = new NmsConsumer(connection, destination, messageReceivedCallback, selector);
         this.consumers.Add(consumer);
     }
 }
コード例 #3
0
ファイル: NmsConnection.cs プロジェクト: cylwit/EasyNMS
 public NmsProducer CreateSynchronousProducer(Destination destination)
 {
     return new NmsProducer(this, destination, synchronous: true);
 }
コード例 #4
0
ファイル: NmsConnection.cs プロジェクト: cylwit/EasyNMS
 public NmsProducer CreateProducer(Destination destination, MsgDeliveryMode messageDeliveryMode)
 {
     return new NmsProducer(this, destination, deliveryMode: messageDeliveryMode);
 }
コード例 #5
0
ファイル: NmsConnection.cs プロジェクト: cylwit/EasyNMS
 public NmsProducer CreateProducer(Destination destination)
 {
     return new NmsProducer(this, destination);
 }
コード例 #6
0
ファイル: NmsProducer.cs プロジェクト: cylwit/EasyNMS
        public void SendRequest(Destination destination, IMessage message, MsgDeliveryMode deliveryMode, MsgPriority messagePriority, TimeSpan timeToLive)
        {
            if (!this.isInitialized)
                this.asr.WaitOne(10000);

            this.producer.Send(destination.GetDestination(this.session), message, deliveryMode, messagePriority, timeToLive);
        }
コード例 #7
0
ファイル: NmsConnectionPool.cs プロジェクト: cylwit/EasyNMS
 NmsProducer INmsConnection.CreateSynchronousProducer(Destination destination)
 {
     return this.GetConnection().CreateProducer(destination, synchronous: true);
 }
コード例 #8
0
ファイル: NmsConnectionPool.cs プロジェクト: cylwit/EasyNMS
 NmsProducer INmsConnection.CreateProducer(Destination destination)
 {
     return new NmsProducer(this, destination);
 }
コード例 #9
0
ファイル: NmsConnectionPool.cs プロジェクト: cylwit/EasyNMS
 NmsConsumer INmsConnection.CreateConsumer(Destination destination, Func<MessageFactory, IMessage, IMessage> messageReceivedCallback)
 {
     return new NmsConsumer(this, destination, messageReceivedCallback);
 }
コード例 #10
0
ファイル: NmsConsumer.cs プロジェクト: cylwit/EasyNMS
 internal NmsConsumer(INmsConnection connection, Destination destination, Func<MessageFactory, IMessage, IMessage> messageReceivedCallback, string selector = null)
     : this(connection, destination, selector)
 {
     this.requestReplyCallback = messageReceivedCallback;
     this.SetupRequestReply(connection, destination, messageReceivedCallback, selector);
 }
コード例 #11
0
ファイル: NmsConsumer.cs プロジェクト: cylwit/EasyNMS
        private void SetupRequestReply(INmsConnection connection, Destination destination, Func<MessageFactory, IMessage, IMessage> messageReceivedCallback, string selector = null)
        {
            this.session = connection.GetSession();

            this.consumer = (selector == null)
                ? this.session.CreateConsumer(destination.GetDestination(this.session))
                : session.CreateConsumer(destination.GetDestination(this.session), selector);

            this.consumer.Listener += new MessageListener(this.RequestReplyCallback);

            this.replyProducer = this.session.CreateProducer();
            this.replyProducer.DeliveryMode = MsgDeliveryMode.NonPersistent;

            this.isInitialized = true;
        }
コード例 #12
0
ファイル: NmsConsumer.cs プロジェクト: cylwit/EasyNMS
        private void SetupRequestOnly(INmsConnection connection, Destination destination, Action<IMessage> messageReceivedCallback, string selector = null)
        {
            this.session = connection.GetSession();
            this.consumer = (selector == null)
                ? this.session.CreateConsumer(destination.GetDestination(this.session))
                : session.CreateConsumer(destination.GetDestination(this.session), selector);

            this.consumer.Listener += new MessageListener(this.RequestOnlyCallback);

            this.isInitialized = true;
        }
コード例 #13
0
ファイル: NmsProducer.cs プロジェクト: cylwit/EasyNMS
 internal NmsProducer(INmsConnection connection, Destination destination, MsgDeliveryMode deliveryMode = MsgDeliveryMode.Persistent, bool synchronous = false)
     : this()
 {
     this.innerDestination = destination;
     this.Setup(connection, deliveryMode, synchronous);
 }
コード例 #14
0
ファイル: NmsConnection.cs プロジェクト: cylwit/EasyNMS
 public NmsProducer CreateSynchronousProducer(Destination destination, MsgDeliveryMode messageDeliveryMode)
 {
     return new NmsProducer(this, destination, deliveryMode: messageDeliveryMode, synchronous: true);
 }
コード例 #15
0
ファイル: NmsConnection.cs プロジェクト: cylwit/EasyNMS
 public NmsConsumer CreateConsumer(Destination destination, Action<IMessage> messageReceivedCallback, string selector = null)
 {
     return new NmsConsumer(this, destination, messageReceivedCallback, selector);
 }
コード例 #16
0
ファイル: NmsConnectionPool.cs プロジェクト: cylwit/EasyNMS
 NmsConsumer INmsConnection.CreateConsumer(Destination destination, Action<IMessage> messageReceivedCallback)
 {
     return new NmsConsumer(this, destination, messageReceivedCallback);
 }
コード例 #17
0
ファイル: NmsConnection.cs プロジェクト: cylwit/EasyNMS
 public NmsMultiConsumer CreateMultiConsumer(Destination destination, int consumerCount, Func<MessageFactory, IMessage, IMessage> messageReceivedCallback, string selector = null)
 {
     return new NmsMultiConsumer(this, destination, consumerCount, messageReceivedCallback, selector);
 }
コード例 #18
0
ファイル: NmsConnectionPool.cs プロジェクト: cylwit/EasyNMS
 NmsMultiConsumer INmsConnection.CreateMultiConsumer(Destination destination, int consumerCount, Func<MessageFactory, IMessage, IMessage> messageReceivedCallback)
 {
     return new NmsMultiConsumer(this, destination, consumerCount, messageReceivedCallback);
 }
コード例 #19
0
ファイル: NmsConnection.cs プロジェクト: cylwit/EasyNMS
 public NmsMultiConsumer CreateMultiConsumer(Destination destination, int consumerCount, Action<IMessage> messageReceivedCallback)
 {
     return new NmsMultiConsumer(this, destination, consumerCount, messageReceivedCallback);
 }
コード例 #20
0
ファイル: NmsConnectionPool.cs プロジェクト: cylwit/EasyNMS
 NmsProducer INmsConnection.CreateProducer(Destination destination, MsgDeliveryMode messageDeliveryMode)
 {
     return new NmsProducer(this, destination, messageDeliveryMode);
 }
コード例 #21
0
ファイル: NmsConnection.cs プロジェクト: cylwit/EasyNMS
 public NmsProducer CreateProducer(Destination destination, MsgDeliveryMode messageDeliveryMode = MsgDeliveryMode.Persistent, bool synchronous = false)
 {
     return new NmsProducer(this, destination, messageDeliveryMode, synchronous);
 }
コード例 #22
0
ファイル: NmsConnectionPool.cs プロジェクト: cylwit/EasyNMS
 NmsProducer INmsConnection.CreateSynchronousProducer(Destination destination, MsgDeliveryMode messageDeliveryMode)
 {
     return this.GetConnection().CreateProducer(destination, messageDeliveryMode: messageDeliveryMode, synchronous: true);
 }
コード例 #23
0
ファイル: NmsProducer.cs プロジェクト: cylwit/EasyNMS
 public void SendRequest(Destination destination, IMessage message)
 {
     this.producer.Send(destination.GetDestination(this.session), message);
 }