The listener link provides non-blocking methods that can be used by brokers/listener applications.
Наследование: Link
Пример #1
0
 internal DispositionContext(ListenerLink link, Message message, DeliveryState deliveryState, bool settled)
     : base(link, message)
 {
     this.Settled = settled;
 }
Пример #2
0
 /// <summary>
 /// Initializes a context object.
 /// </summary>
 /// <param name="link">The link where the message was received.</param>
 /// <param name="message">The received message.</param>
 protected Context(ListenerLink link, Message message)
 {
     this.Link = link;
     this.Message = message;
     this.state = ContextState.Active;
 }
Пример #3
0
            static void DispatchMessage(ListenerLink link, Message message, DeliveryState deliveryState, object state)
            {
                MessageContext context = new MessageContext(link, message);

                ((MessageProcessor)state).processor.Process(context);
            }
Пример #4
0
 protected Context(ListenerLink link, Message message)
 {
     this.Link    = link;
     this.Message = message;
 }
Пример #5
0
 internal RequestContext(ListenerLink requestLink, ListenerLink responseLink, Message request)
     : base(requestLink, request)
 {
     this.responseLink = responseLink;
 }
Пример #6
0
 /// <summary>
 /// Initializes a context object.
 /// </summary>
 /// <param name="link">The link where the message was received.</param>
 /// <param name="message">The received message.</param>
 protected Context(ListenerLink link, Message message)
 {
     this.Link    = link;
     this.Message = message;
     this.state   = ContextState.Active;
 }
Пример #7
0
        public Task<ReceiveContext> GetMessageAsync(ListenerLink link)
        {
            lock (this.messages)
            {
                ReceiveContext context = null;
                if (this.messages.Count > 0)
                {
                    context = new ReceiveContext(link, this.messages.Dequeue());
                }

                return Task.FromResult(context);
            }
        }
Пример #8
0
 /// <summary>
 /// Initializes a TargetLinkEndpoint object
 /// </summary>
 /// <param name="messageProcessor">The associated message processor.</param>
 /// <param name="link">The listener link.</param>
 public TargetLinkEndpoint(IMessageProcessor messageProcessor, ListenerLink link)
 {
     this.messageProcessor = messageProcessor;
     this.link = link;
 }
Пример #9
0
 /// <summary>
 /// Initializes a TargetLinkEndpoint object
 /// </summary>
 /// <param name="messageProcessor">The associated message processor.</param>
 /// <param name="link">The listener link.</param>
 public TargetLinkEndpoint(IMessageProcessor messageProcessor, ListenerLink link)
 {
     this.messageProcessor = messageProcessor;
     this.link             = link;
 }
Пример #10
0
 internal AttachContext(ListenerLink link, Attach attach)
 {
     this.Link   = link;
     this.Attach = attach;
 }
Пример #11
0
 internal FlowContext(ListenerLink link, int messages, Fields properties)
 {
     this.Link = link;
     this.Messages = messages;
     this.Properties = properties;
 }
Пример #12
0
 /// <summary>
 /// Initializes a SourceLinkEndpoint object
 /// </summary>
 /// <param name="messageSource">The associated message source.</param>
 /// <param name="link">The listener link.</param>
 public SourceLinkEndpoint(IMessageSource messageSource, ListenerLink link)
 {
     this.syncRoot = new object();
     this.messageSource = messageSource;
     this.link = link;
 }
Пример #13
0
 public MonitoringLinkEndpoint(ListenerLink link)
 {
     this.link = link;
     this.link.Closed += this.OnLinkClosed;
     this.random = new Random();
     this.timer = new Timer(OnTimer, this, 1000, 1000);
 }
Пример #14
0
 /// <summary>
 /// Initializes a context object.
 /// </summary>
 /// <param name="link">The link where the message was received.</param>
 /// <param name="message">The received message.</param>
 protected Context(ListenerLink link, Message message)
 {
     this.Link = link;
     this.Message = message;
 }
Пример #15
0
 internal FlowContext(ListenerLink link, int messages, Fields properties)
 {
     this.Link       = link;
     this.Messages   = messages;
     this.Properties = properties;
 }
Пример #16
0
 internal MessageContext(ListenerLink link, Message message)
     : base(link, message)
 {
     this.DeliveryState = message.Delivery.State;
 }
Пример #17
0
        public Task<ReceiveContext> GetMessageAsync(ListenerLink link)
        {
            lock (this.messages)
            {
                ReceiveContext context = null;
                if (this.messages.Count > 0)
                {
                    context = new ReceiveContext(link, this.messages.Dequeue());
                }

                var tcs = new TaskCompletionSource<ReceiveContext>();
                tcs.SetResult(context);
                return tcs.Task;
            }
        }
Пример #18
0
 internal RequestContext(ListenerLink requestLink, ListenerLink responseLink, Message request)
     : base(requestLink, request)
 {
     this.responseLink = responseLink;
 }
Пример #19
0
 public SlowLinkEndpoint(AttachContext attachContext)
 {
     this.link = attachContext.Link;
     this.cts = new CancellationTokenSource();
     link.Closed += (o, e) => this.cts.Cancel();
     attachContext.Complete(this, 0);
     this.link.SetCredit(1, false, false);
 }
Пример #20
0
 internal DispositionContext(ListenerLink link, Message message, DeliveryState deliveryState, bool settled)
     : base(link, message)
 {
     this.Settled = settled;
 }
Пример #21
0
 /// <summary>
 /// The method is called when the link is closed. Derived classes may override this method to
 /// perform necessary cleanup work.
 /// </summary>
 /// <param name="link">The link that is being closed.</param>
 /// <param name="error">The error, if any, that causes the link to be closed.</param>
 public virtual void OnLinkClosed(ListenerLink link, Error error)
 {
 }
Пример #22
0
 /// <summary>
 /// The method is called when the link is closed. Derived classes may override this method to
 /// perform necessary cleanup work.
 /// </summary>
 /// <param name="link">The link that is being closed.</param>
 /// <param name="error">The error, if any, that causes the link to be closed.</param>
 public virtual void OnLinkClosed(ListenerLink link, Error error)
 {
 }
Пример #23
0
 internal MessageContext(ListenerLink link, Message message)
     : base(link, message)
 {
 }
Пример #24
0
 /// <summary>
 /// Initializes a ReceiveContext object.
 /// </summary>
 /// <param name="link">The listener link to send out the message.</param>
 /// <param name="message">The message to send out.</param>
 public ReceiveContext(ListenerLink link, Message message)
     : base(link, message)
 {
 }
Пример #25
0
 /// <summary>
 /// Initializes a SourceLinkEndpoint object
 /// </summary>
 /// <param name="messageSource">The associated message source.</param>
 /// <param name="link">The listener link.</param>
 public SourceLinkEndpoint(IMessageSource messageSource, ListenerLink link)
 {
     this.syncRoot      = new object();
     this.messageSource = messageSource;
     this.link          = link;
 }
Пример #26
0
 /// <summary>
 /// Initializes a ReceiveContext object.
 /// </summary>
 /// <param name="link">The listener link to send out the message.</param>
 /// <param name="message">The message to send out.</param>
 public ReceiveContext(ListenerLink link, Message message)
     : base(link, message)
 {
 }
Пример #27
0
        public bool TryAdd(ListenerLink link)
        {
            Key key = new Key(this.containerId, link);

            return(this.links.TryAdd(key, link));
        }
Пример #28
0
 internal AttachContext(ListenerLink link, Attach attach)
 {
     this.Link = link;
     this.Attach = attach;
 }
Пример #29
0
        void OnLinkClosed(AmqpObject sender, Error error)
        {
            ListenerLink link = (ListenerLink)sender;

            this.linkCollection.Remove(link);
        }
Пример #30
0
 internal MessageContext(ListenerLink link, Message message)
     : base(link, message)
 {
     this.DeliveryState = message.Delivery.State;
 }