Proton DotNet
|
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...
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< IDelivery > | TryReceiveAsync () |
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< IDelivery > | ReceiveAsync () |
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< IDelivery > | ReceiveAsync (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. | |
![]() | |
LinkType | AddCredit (uint credit) |
Task< LinkType > | AddCreditAsync (uint credit) |
LinkType | Drain () |
Task< LinkType > | DrainAsync () |
![]() | |
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< IReceiver > | AddCreditAsync (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< IReceiver > | DrainAsync () |
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. | |
![]() | |
void | Close (IErrorCondition error=null) |
Initiates a close of the link and awaits a response from the remote that indicates completion of the close operation. If the response from the remote exceeds the configure close timeout the method returns after cleaning up the link resources. | |
void | Detach (IErrorCondition error=null) |
Initiates a detach of the link and awaits a response from the remote that indicates completion of the detach operation. If the response from the remote exceeds the configure close timeout the method returns after cleaning up the link resources. | |
Task< Role > | CloseAsync (IErrorCondition error=null) |
Initiates a close of the link and a Task that allows the caller to await or poll for the response from the remote that indicates completion of the close operation. If the response from the remote exceeds the configure close timeout the sender will be cleaned up and the Task signalled indicating completion. | |
Task< Role > | DetachAsync (IErrorCondition error=null) |
Initiates a detach of the link and a Task that allows the caller to await or poll for the response from the remote that indicates completion of the detach operation. If the response from the remote exceeds the configure close timeout the sender will be cleaned up and the Task signalled indicating completion. | |
Protected Member Functions | |
override void | ReplenishCreditIfNeeded () |
![]() | |
void | AsyncApplyDisposition (IIncomingDelivery delivery, Types.Transport.IDeliveryState state, bool settle) |
void | AsyncReplenishCreditIfNeeded () |
Properties | |
override IReceiver | Self [get] |
![]() | |
virtual int | QueuedDeliveries [get] |
LinkType | Self [get] |
![]() | |
int | QueuedDeliveries [get] |
A count of the currently queued deliveries which can be read immediately without blocking a call to receive. | |
![]() | |
IClient | Client [get] |
Returns the parent client instance that hosts this link. | |
IConnection | Connection [get] |
Returns the parent connection instance that hosts this link. | |
ISession | Session [get] |
Returns the parent session instance that created this link. | |
string | Address [get] |
Returns the address that the link instance will send message objects to. The value returned from this method is controlled by the configuration that was used to create the link.
| |
ISource | Source [get] |
Returns an immutable view of the remote Source object assigned to this link link. If the attach has not completed yet this method will block to await the attach response which carries the remote source. | |
ITarget | Target [get] |
Returns an immutable view of the remote Target object assigned to this link link. If the attach has not completed yet this method will block to await the attach response which carries the remote target. | |
IReadOnlyDictionary< string, object > | Properties [get] |
Returns the properties that the remote provided upon successfully opening the link. If the open has not completed yet this method will block to await the open response which carries the remote properties. If the remote provides no properties this method will return null. | |
IReadOnlyCollection< string > | OfferedCapabilities [get] |
Returns the offered capabilities that the remote provided upon successfully opening the link. If the open has not completed yet this method will block to await the open response which carries the remote offered capabilities. If the remote provides no offered capabilities this method will return null. | |
IReadOnlyCollection< string > | DesiredCapabilities [get] |
Returns the desired capabilities that the remote provided upon successfully opening the link. If the open has not completed yet this method will block to await the open response which carries the remote desired capabilities. If the remote provides no desired capabilities this method will return null. | |
Task< Role > | OpenTask [get] |
When a link is created and returned to the client application it may not be remotely opened yet and if the client needs to wait for completion of the open before proceeding the open task can be fetched and waited upon. | |
Additional Inherited Members | |
![]() | |
TaskCompletionSource< LinkType > | drainingFuture |
readonly ReceiverOptions | options |
readonly string | receiverId |
Client receiver implementation which provides a wrapper around the proton receiver link and processes incoming deliveries with options for queueing with a credit window.
|
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.
Implements Apache.Qpid.Proton.Client.IReceiver.
|
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.
Implements Apache.Qpid.Proton.Client.IReceiver.
|
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.
Implements Apache.Qpid.Proton.Client.IReceiver.
|
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.
Implements Apache.Qpid.Proton.Client.IReceiver.
|
inlineprotectedvirtual |
Reimplemented from Apache.Qpid.Proton.Client.Implementation.ClientReceiverLinkType< IReceiver >.
|
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.
Implements Apache.Qpid.Proton.Client.IReceiver.
|
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.
Implements Apache.Qpid.Proton.Client.IReceiver.