Proton DotNet
Loading...
Searching...
No Matches
Classes | Enumerations
Apache.Qpid.Proton.Client Namespace Reference

Classes

class  ClientOptions
 
class  ConnectionEvent
 An event object that accompanies events fired to handlers configured in the Connection options which are signaled during specific Connection event points. More...
 
class  ConnectionOptions
 
class  DisconnectionEvent
 An event object that accompanies events fired to handlers configured in the Connection options which are signaled during specific Connection event points. More...
 
interface  IAdvancedMessage
 A single AMQP Message instance used by senders and receivers to provide a lower level abstraction around an AMQP message than the basic IMessage type but still provides the IMessage interface simpler access where needed. More...
 
interface  IClient
 The Container that hosts one ore more AMQP connections that share a given AMQP container Id. More...
 
interface  IConnection
 A single AMQP Connection instance. More...
 
interface  IDelivery
 A single AMQP delivery tracker instance. More...
 
interface  IDeliveryState
 
interface  IErrorCondition
 An immutable error condition that carries information that aids in determining the factors that lead to the error. More...
 
interface  ILink
 A single AMQP link which can be a sender or receiver instance but each expose a common set of link properties whose API is presented here. More...
 
interface  IMessage
 A single AMQP Message instance used by senders and receivers to provide a high level abstraction around an AMQP message. More...
 
interface  IReceiver
 A single AMQP receiver instance. More...
 
interface  ISender
 A single AMQP sender instance. More...
 
interface  ISession
 A single AMQP session instance. More...
 
interface  ISource
 Represents the remote Source instance for a sender or receiver link. More...
 
interface  IStreamDelivery
 A specialized delivery type that is returned from the stream receiver which can be used to read incoming large messages that are streamed via multiple incoming AMQP transfer frames. More...
 
interface  IStreamReceiver
 A single AMQP stream receiver instance. More...
 
interface  IStreamReceiverMessage
 A specialized message type that represents a streamed delivery possibly spanning many incoming AMQP transfer frames from the remote peer. It is possible for various calls in this message type to block while awaiting the receipt of sufficient bytes to provide the result. More...
 
interface  IStreamSender
 A single AMQP stream sender instance which can be used to transmit large message payloads to the remote without needing to load the full message contents into memory. The streaming sender will also provide flow control that attempts to provide additional safety values for out of memory situations. More...
 
interface  IStreamSenderMessage
 A specialized streaming message type used to operate on a streamed message which allows message data to be written in one or more transfer frames to the remote allowing for very large message transmission with limited memory overhead. More...
 
interface  IStreamTracker
 Special streaming sender related tracker that is linked to a stream sender message and provides the tracker functions for those types of messages. More...
 
interface  ITarget
 Represents the remote Target instance for a sender or receiver link. More...
 
interface  ITracker
 A single AMQP delivery tracker instance. More...
 
class  OutputStreamOptions
 Options class that controls various aspects of a write only stream instance created to write the contents of a section of a stream sender message. More...
 
class  ReceiverOptions
 
struct  ReconnectLocation
 Represents a fixed location that can be used for connection by the client should the initially specified connection location be unreachable or become unavailable during the lifetime of the connection. More...
 
class  ReconnectOptions
 Reconnection options which will control how a connection deals will connection loss and or inability to connect to the host it was provided at create time. More...
 
class  SaslOptions
 Options that control how the SASL authentication process is performed. More...
 
class  SenderOptions
 
class  SessionOptions
 
class  SourceOptions
 Options used to configure the source when a terminus is being created. More...
 
class  SslOptions
 Options that control the SSL level transport configuration. More...
 
class  StreamReceiverOptions
 
class  StreamSenderOptions
 Special sender options that are applied the streaming senders which allow transmission of large message payloads. More...
 
class  TargetOptions
 
class  TerminusOptions
 Base options type for the terminus configuration for Source and Target types that configure the nodes for Sender and Receiver links. More...
 
class  TransportOptions
 Options that control the I/O level transport configuration. More...
 

Enumerations

enum  DeliveryMode { AtMostOnce , AtLeastOnce }
 Defines the delivery modes that a sender or receiver can be configured with. More...
 
enum  DeliveryStateType {
  Accepted , Rejected , Modified , Released ,
  Transactional
}
 Enumeration of possible delivery state types which can be allied as outcome to an incoming or outgoing delivery.
 
enum  DistributionMode { Copy , Move , None }
 The distribution-mode of a source determines how messages from a distribution node are distributed among its associated links. More...
 
enum  DurabilityMode { None , Configuration , UnsettledState }
 Durability policy for a terminus.
 
enum  ExpiryPolicy { LinkClose , SessionClose , ConnectionClose , Never }
 Expiry policy for a terminus. More...
 
enum  NextReceiverPolicy {
  RoundRobin , Random , FirstAvailable , LargestBacklog ,
  SmallestBacklog
}
 Determines the behavior of a Session when the next receiver method is called on that session. Each policy provides a contract on the ordering of returned receivers from the next receiver API when there are receivers with locally queued deliveries. When there are no Receiver instances that have locally queued deliveries the next receive API will return the next receiver to receive a complete incoming delivery unless a timeout was given and that time period expires in which case it will return null. More...
 

Enumeration Type Documentation

◆ DeliveryMode

Defines the delivery modes that a sender or receiver can be configured with.

Enumerator
AtMostOnce 

At most once delivery mode which configures the sender or receiver to request pre-settled deliveries. This is lowest level of reliability but the fastest overall mode as it does not require round trips from the remote to accept or settle the delivery.

AtLeastOnce 

At least once deliver mode which configures the sender or receiver to require that delivery be settled upon receipt.

◆ DistributionMode

The distribution-mode of a source determines how messages from a distribution node are distributed among its associated links.

Enumerator
Copy 

The copy distribution-mode leaves the state of the message unchanged at the distribution node.

Move 

Causes messages transferred from the distribution node to transition to the ACQUIRED state prior to transfer over the link, and subsequently to the ARCHIVED state when the transfer is settled with a successful outcome.

None 

When used to set a value to send to the remote this value implies that nothing should be configured out the outgoing configuration and when returned from a read of some remote resource this value indicates that the remote sent no value for the distribution mode.

◆ ExpiryPolicy

Expiry policy for a terminus.

Enumerator
LinkClose 

Eligible for expiry on Link close.

SessionClose 

Eligible for expiry when the associated Session is closed.

ConnectionClose 

Eligible for expiry when the associated Connection is closed.

Never 

Terminus never expires.

◆ NextReceiverPolicy

Determines the behavior of a Session when the next receiver method is called on that session. Each policy provides a contract on the ordering of returned receivers from the next receiver API when there are receivers with locally queued deliveries. When there are no Receiver instances that have locally queued deliveries the next receive API will return the next receiver to receive a complete incoming delivery unless a timeout was given and that time period expires in which case it will return null.

Should the user perform receive calls on a Receiver directly in multiple threads the behavior of the next receiver API is undefined and it becomes possible that the resulting receiver returned from that API will have no actual pending deliveries due to a race. In most cases the caller can mitigate some risk by using the Receiver tryReceive API and accounting for a null result.

Enumerator
RoundRobin 

Examines the list of currently open receivers in the session and returns the next receiver that has a pending delivery that follows the previously returned receiver (if any) otherwise the first receiver in the session with a pending delivery is returned. The order of receivers returned will likely be creation order however the implementation is not required to follow this pattern so the caller should not be coded to rely on that ordering.

Random 

Examines the list of currently open receivers in the session and returns a random selection from the set of receivers that have a pending delivery immediately available. This provides a means of selecting receivers which is not prone to sticking to a highly active receiver which can starve out other receivers which receive only limited traffic.

FirstAvailable 

Examines the list of currently open receivers in the session and returns the first receiver found with an available delivery. This can result in starvation if that receiver has a continuous feed of new deliveries from the remote as it will be repeatedly selected by the next receiver API.

LargestBacklog 

Examines the list of currently open receivers in the session and returns the receiver with the largest backlog of available deliveries. This can result in starvation if that receiver has a continuous feed of new deliveries from the remote as it will likely be repeatedly selected by the next receiver API.

SmallestBacklog 

Examines the list of currently open receivers in the session and returns the receiver with the smallest backlog of available deliveries.