Proton DotNet
Loading...
Searching...
No Matches
Classes | Public Member Functions | List of all members
Apache.Qpid.Proton.Client.Implementation.ClientStreamSender Class Referencesealed

Implements the stream sender using a stateful current outgoing message that prevents any sends other than to the current message until the current is completed. More...

Inheritance diagram for Apache.Qpid.Proton.Client.Implementation.ClientStreamSender:
Apache.Qpid.Proton.Client.Implementation.ClientLinkType< IStreamSender, Engine.ISender > Apache.Qpid.Proton.Client.IStreamSender Apache.Qpid.Proton.Client.ILink< IStreamSender >

Public Member Functions

IStreamTracker Send< T > (IMessage< T > message, IDictionary< string, object > deliveryAnnotations=null)
 If no streaming send has been initiated and not yet completed then this method will send the given message immediately if there is credit available or blocks if the link has not yet been granted credit. If a send timeout has been configured then this method will throw a timed out error after that if the message cannot be sent.
 
IStreamTracker TrySend< T > (IMessage< T > message, IDictionary< string, object > deliveryAnnotations=null)
 If no streaming send has been initiated and not yet completed then this method will send the given message if credit is available or returns null if no credit has been granted to the link at the time of the send attempt.
 
Task< IStreamTrackerSendAsync< T > (IMessage< T > message, IDictionary< string, object > deliveryAnnotations=null)
 If no streaming send has been initiated and not yet completed then this method will send the given message immediately if there is credit available or waits if the link has not yet been granted credit. If a send timeout has been configured then this method will fail the returned Task with a timed out error after that if the message cannot be sent. The returned Task will be completed once the message has been sent.
 
Task< IStreamTrackerTrySendAsync< T > (IMessage< T > message, IDictionary< string, object > deliveryAnnotations=null)
 If no streaming send has been initiated and not yet completed then this method will send the given message if credit is available or completes the returned Task with null if no credit has been granted to the link at the time of the send attempt.
 
IStreamSenderMessage BeginMessage (IDictionary< string, object > deliveryAnnotations=null)
 Creates and returns a new stream capable message that can be used by the caller to perform streaming sends of large message payload data. Only one streamed message can be active at a time so any successive calls to begin a new streaming message will throw an error to indicate that the previous instance has not yet been completed.
 
Task< IStreamSenderMessageBeginMessageAsync (IDictionary< string, object > deliveryAnnotations=null)
 Creates and returns a new stream capable message that can be used by the caller to perform streaming sends of large message payload data. Only one streamed message can be active at a time so any successive calls to begin a new streaming message will throw an error to indicate that the previous instance has not yet been completed.
 
- Public Member Functions inherited from Apache.Qpid.Proton.Client.Implementation.ClientLinkType< IStreamSender, Engine.ISender >
void Close (IErrorCondition error=null)
 
Task< LinkType > CloseAsync (IErrorCondition error=null)
 
void Detach (IErrorCondition error=null)
 
Task< LinkType > DetachAsync (IErrorCondition error=null)
 
void Dispose ()
 

Additional Inherited Members

- Protected Member Functions inherited from Apache.Qpid.Proton.Client.Implementation.ClientLinkType< IStreamSender, Engine.ISender >
virtual Task< LinkType > DoCloseOrDetach (bool close, IErrorCondition error)
 
void CheckClosedOrFailed ()
 
void WaitForOpenToComplete ()
 
bool NotClosedOrFailed< T > (TaskCompletionSource< T > request)
 
bool NotClosedOrFailed< T > (TaskCompletionSource< T > request, ProtonLinkType sender)
 
- Protected Attributes inherited from Apache.Qpid.Proton.Client.Implementation.ClientLinkType< IStreamSender, Engine.ISender >
readonly AtomicBoolean closed
 
readonly ClientSession session
 
ClientException failureCause
 
readonly TaskCompletionSource< LinkType > openFuture
 
readonly TaskCompletionSource< LinkType > closeFuture
 
volatile ISource remoteSource
 
volatile ITarget remoteTarget
 
ProtonLinkType protonLink
 
- Properties inherited from Apache.Qpid.Proton.Client.Implementation.ClientLinkType< IStreamSender, Engine.ISender >
IClient Client [get]
 
IConnection Connection [get]
 
ISession Session [get]
 
Task< LinkType > OpenTask [get]
 
string Address [get]
 
ISource Source [get]
 
ITarget Target [get]
 
IReadOnlyDictionary< string, object > Properties [get]
 
IReadOnlyCollection< string > OfferedCapabilities [get]
 
IReadOnlyCollection< string > DesiredCapabilities [get]
 

Detailed Description

Implements the stream sender using a stateful current outgoing message that prevents any sends other than to the current message until the current is completed.

Member Function Documentation

◆ BeginMessage()

IStreamSenderMessage Apache.Qpid.Proton.Client.Implementation.ClientStreamSender.BeginMessage ( IDictionary< string, object >  deliveryAnnotations = null)
inline

Creates and returns a new stream capable message that can be used by the caller to perform streaming sends of large message payload data. Only one streamed message can be active at a time so any successive calls to begin a new streaming message will throw an error to indicate that the previous instance has not yet been completed.

Parameters
deliveryAnnotationsThe optional delivery annotations to transmit with the message
Returns
A new IStreamSenderMessage if no send is currently in progress

Implements Apache.Qpid.Proton.Client.IStreamSender.

◆ BeginMessageAsync()

Task< IStreamSenderMessage > Apache.Qpid.Proton.Client.Implementation.ClientStreamSender.BeginMessageAsync ( IDictionary< string, object >  deliveryAnnotations = null)
inline

Creates and returns a new stream capable message that can be used by the caller to perform streaming sends of large message payload data. Only one streamed message can be active at a time so any successive calls to begin a new streaming message will throw an error to indicate that the previous instance has not yet been completed.

Parameters
deliveryAnnotationsThe optional delivery annotations to transmit with the message
Returns
A Task that returns new IStreamSenderMessage if no send is currently in progress

Implements Apache.Qpid.Proton.Client.IStreamSender.

◆ Send< T >()

IStreamTracker Apache.Qpid.Proton.Client.Implementation.ClientStreamSender.Send< T > ( IMessage< T >  message,
IDictionary< string, object >  deliveryAnnotations = null 
)
inline

If no streaming send has been initiated and not yet completed then this method will send the given message immediately if there is credit available or blocks if the link has not yet been granted credit. If a send timeout has been configured then this method will throw a timed out error after that if the message cannot be sent.

Template Parameters
TThe type that describes the message body
Parameters
messageThe message object that will be sent
deliveryAnnotationsOptional delivery annotation to include with the message
Returns
A Tracker for the sent message

Implements Apache.Qpid.Proton.Client.IStreamSender.

◆ SendAsync< T >()

Task< IStreamTracker > Apache.Qpid.Proton.Client.Implementation.ClientStreamSender.SendAsync< T > ( IMessage< T >  message,
IDictionary< string, object >  deliveryAnnotations = null 
)
inline

If no streaming send has been initiated and not yet completed then this method will send the given message immediately if there is credit available or waits if the link has not yet been granted credit. If a send timeout has been configured then this method will fail the returned Task with a timed out error after that if the message cannot be sent. The returned Task will be completed once the message has been sent.

Template Parameters
TThe type that describes the message body
Parameters
messageThe message object that will be sent
deliveryAnnotationsOptional delivery annotation to include with the message
Returns
A Task that is completed with a Tracker once the send completes

Implements Apache.Qpid.Proton.Client.IStreamSender.

◆ TrySend< T >()

IStreamTracker Apache.Qpid.Proton.Client.Implementation.ClientStreamSender.TrySend< T > ( IMessage< T >  message,
IDictionary< string, object >  deliveryAnnotations = null 
)
inline

If no streaming send has been initiated and not yet completed then this method will send the given message if credit is available or returns null if no credit has been granted to the link at the time of the send attempt.

Template Parameters
TThe type that describes the message body
Parameters
messageThe message object that will be sent
deliveryAnnotationsOptional delivery annotation to include with the message
Returns
A Tracker for the sent message or null if no credit to send is available

Implements Apache.Qpid.Proton.Client.IStreamSender.

◆ TrySendAsync< T >()

Task< IStreamTracker > Apache.Qpid.Proton.Client.Implementation.ClientStreamSender.TrySendAsync< T > ( IMessage< T >  message,
IDictionary< string, object >  deliveryAnnotations = null 
)
inline

If no streaming send has been initiated and not yet completed then this method will send the given message if credit is available or completes the returned Task with null if no credit has been granted to the link at the time of the send attempt.

Template Parameters
TThe type that describes the message body
Parameters
messageThe message object that will be sent
deliveryAnnotationsOptional delivery annotation to include with the message
Returns
A Task that provides a tracker if the send completes or null if no credit

Implements Apache.Qpid.Proton.Client.IStreamSender.


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