Proton DotNet
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Properties | List of all members
Apache.Qpid.Proton.Client.Implementation.ClientReceiver Class Reference

Client receiver implementation which provides a wrapper around the proton receiver link and processes incoming deliveries with options for queueing with a credit window. More...

Inheritance diagram for Apache.Qpid.Proton.Client.Implementation.ClientReceiver:
Apache.Qpid.Proton.Client.Implementation.ClientReceiverLinkType< IReceiver > Apache.Qpid.Proton.Client.IReceiver Apache.Qpid.Proton.Client.ILink< IReceiver >

Public Member Functions

IDelivery TryReceive ()
 A mostly Non-blocking receive method that either returns a delivery if one is immediately available or returns null if none is currently at hand. It is possible that this method will block for short time intervals while acquiring and releasing internal locks.
 
IDelivery Receive ()
 Blocking receive method that waits forever for the remote to provide a delivery for consumption.
 
IDelivery Receive (TimeSpan timeout)
 Blocking receive method that waits for the specified time period for the remote to provide a delivery for consumption before returning null if none was received.
 
Task< IDeliveryTryReceiveAsync ()
 Asynchronous receive method that returns a Task which will be completed either with a currently available delivery or with null to indicate there are no queued deliveries.
 
Task< IDeliveryReceiveAsync ()
 Asynchronous receive method that waits forever for the remote to provide a delivery for consumption and when a delivery is available the returned Task will be completed.
 
Task< IDeliveryReceiveAsync (TimeSpan timeout)
 Asynchronous receive method that returns a Task that will be completed after the specified time period if the remote to provides a delivery for consumption before completing with null if none was received.
 
- Public Member Functions inherited from Apache.Qpid.Proton.Client.Implementation.ClientReceiverLinkType< IReceiver >
LinkType AddCredit (uint credit)
 
Task< LinkType > AddCreditAsync (uint credit)
 
LinkType Drain ()
 
Task< LinkType > DrainAsync ()
 
- Public Member Functions inherited from Apache.Qpid.Proton.Client.IReceiver
IReceiver AddCredit (uint credit)
 Adds credit to the Receiver link for use when there receiver has not been configured with with a credit window. When credit window is configured credit replenishment is automatic and calling this method will result in an exception indicating that the operation is invalid.
 
Task< IReceiverAddCreditAsync (uint credit)
 Asynchronously Adds credit to the Receiver link for use when there receiver has not been configured with with a credit window. When credit window is configured credit replenishment is automatic and calling this method will result in an exception indicating that the operation is invalid.
 
IReceiver Drain ()
 Requests the remote to drain previously granted credit for this receiver link. The remote will either send all available deliveries up to the currently granted link credit or will report it has none to send an link credit will be set to zero. This method will block until the remote answers the drain request or the configured drain timeout expires.
 
Task< IReceiverDrainAsync ()
 Requests the remote to drain previously granted credit for this receiver link. The remote will either send all available deliveries up to the currently granted link credit or will report it has none to send an link credit will be set to zero. The caller can wait on the returned task which will be signalled either after the remote reports drained or once the configured drain timeout is reached.
 

Protected Member Functions

override void ReplenishCreditIfNeeded ()
 
- Protected Member Functions inherited from Apache.Qpid.Proton.Client.Implementation.ClientReceiverLinkType< IReceiver >
void AsyncApplyDisposition (IIncomingDelivery delivery, Types.Transport.IDeliveryState state, bool settle)
 
void AsyncReplenishCreditIfNeeded ()
 

Properties

override IReceiver Self [get]
 
- Properties inherited from Apache.Qpid.Proton.Client.Implementation.ClientReceiverLinkType< IReceiver >
virtual int QueuedDeliveries [get]
 
LinkType Self [get]
 
- Properties inherited from Apache.Qpid.Proton.Client.IReceiver
int QueuedDeliveries [get]
 A count of the currently queued deliveries which can be read immediately without blocking a call to receive.
 

Additional Inherited Members

- Protected Attributes inherited from Apache.Qpid.Proton.Client.Implementation.ClientReceiverLinkType< IReceiver >
TaskCompletionSource< LinkType > drainingFuture
 
readonly ReceiverOptions options
 
readonly string receiverId
 

Detailed Description

Client receiver implementation which provides a wrapper around the proton receiver link and processes incoming deliveries with options for queueing with a credit window.

Member Function Documentation

◆ Receive() [1/2]

IDelivery Apache.Qpid.Proton.Client.Implementation.ClientReceiver.Receive ( )
inline

Blocking receive method that waits forever for the remote to provide a delivery for consumption.

Receive calls will only grant credit on their own if a credit window is configured in the options which by default will have been configured. If the client application has not configured a credit window then this method won't grant or extend the credit window but will wait for a delivery regardless. The application needs to arrange for credit to be granted in that case.

Returns
The next available delivery

Implements Apache.Qpid.Proton.Client.IReceiver.

◆ Receive() [2/2]

IDelivery Apache.Qpid.Proton.Client.Implementation.ClientReceiver.Receive ( TimeSpan  timeout)
inline

Blocking receive method that waits for the specified time period for the remote to provide a delivery for consumption before returning null if none was received.

Receive calls will only grant credit on their own if a credit window is configured in the options which by default will have been configured. If the client application has not configured a credit window then this method won't grant or extend the credit window but will wait for a delivery regardless. The application needs to arrange for credit to be granted in that case.

Returns
The next available delivery or null if the time span elapses

Implements Apache.Qpid.Proton.Client.IReceiver.

◆ ReceiveAsync() [1/2]

Task< IDelivery > Apache.Qpid.Proton.Client.Implementation.ClientReceiver.ReceiveAsync ( )
inline

Asynchronous receive method that waits forever for the remote to provide a delivery for consumption and when a delivery is available the returned Task will be completed.

Receive calls will only grant credit on their own if a credit window is configured in the options which by default will have been configured. If the client application has not configured a credit window then this method won't grant or extend the credit window but will wait for a delivery regardless. The application needs to arrange for credit to be granted in that case.

Returns
The next available delivery

Implements Apache.Qpid.Proton.Client.IReceiver.

◆ ReceiveAsync() [2/2]

Task< IDelivery > Apache.Qpid.Proton.Client.Implementation.ClientReceiver.ReceiveAsync ( TimeSpan  timeout)
inline

Asynchronous receive method that returns a Task that will be completed after the specified time period if the remote to provides a delivery for consumption before completing with null if none was received.

Receive calls will only grant credit on their own if a credit window is configured in the options which by default will have been configured. If the client application has not configured a credit window then this method won't grant or extend the credit window but will wait for a delivery regardless. The application needs to arrange for credit to be granted in that case.

Returns
The next available delivery or null if the time span elapses

Implements Apache.Qpid.Proton.Client.IReceiver.

◆ ReplenishCreditIfNeeded()

override void Apache.Qpid.Proton.Client.Implementation.ClientReceiver.ReplenishCreditIfNeeded ( )
inlineprotectedvirtual

◆ TryReceive()

IDelivery Apache.Qpid.Proton.Client.Implementation.ClientReceiver.TryReceive ( )
inline

A mostly Non-blocking receive method that either returns a delivery if one is immediately available or returns null if none is currently at hand. It is possible that this method will block for short time intervals while acquiring and releasing internal locks.

Returns
A delivery if one is immediately available or null if not

Implements Apache.Qpid.Proton.Client.IReceiver.

◆ TryReceiveAsync()

Task< IDelivery > Apache.Qpid.Proton.Client.Implementation.ClientReceiver.TryReceiveAsync ( )
inline

Asynchronous receive method that returns a Task which will be completed either with a currently available delivery or with null to indicate there are no queued deliveries.

Returns
A Task that completes with a delivery if one is immediately available or null if not

Implements Apache.Qpid.Proton.Client.IReceiver.


The documentation for this class was generated from the following file: