Interface Session

All Superinterfaces:
Endpoint<Session>
All Known Implementing Classes:
ProtonSession

public interface Session extends Endpoint<Session>
AMQP Session interface
  • Method Details

    • getState

      SessionState getState()
      Returns:
      the local session state
    • getConnection

      Connection getConnection()
      Returns:
      the parent Connection for this Session.
    • getParent

      Connection getParent()
      Description copied from interface: Endpoint
      Gets the parent of this Endpoint which can be itself for Connection instance.
      Specified by:
      getParent in interface Endpoint<Session>
      Returns:
      the parent Connection of the Link
    • links

      Set<Link<?>> links()
      Returns a Set of all Sender and Receiver instances that are being tracked by this Session.
      Returns:
      a set of Sender and Receiver instances tracked by this session.
    • senders

      Set<? extends Sender> senders()
      Returns a Set of Sender instances that are being tracked by this Session.
      Returns:
      a set of Sender instances tracked by this session.
    • receivers

      Set<? extends Receiver> receivers()
      Returns a Set of Receiver instances that are being tracked by this Session.
      Returns:
      a set of Receiver instances tracked by this session.
    • sender

      Sender sender(String name) throws IllegalStateException
      Create a new Sender link using the provided name.
      Parameters:
      name - The name to assign to the created Sender
      Returns:
      a newly created Sender instance.
      Throws:
      IllegalStateException - if the Session has already been closed.
    • receiver

      Receiver receiver(String name) throws IllegalStateException
      Create a new Receiver link using the provided name
      Parameters:
      name - The name to assign to the created Receiver
      Returns:
      a newly created Receiver instance.
      Throws:
      IllegalStateException - if the Session has already been closed.
    • coordinator

      Create a new TransactionController using the provided name.
      Parameters:
      name - The name to assign to the created TransactionController
      Returns:
      a newly created TransactionController instance.
      Throws:
      IllegalStateException - if the Session has already been closed.
    • setIncomingCapacity

      Session setIncomingCapacity(int incomingCapacity) throws IllegalStateException
      Sets the maximum number of bytes this session can be sent from the remote.
      Parameters:
      incomingCapacity - maximum number of incoming bytes this session will allow
      Returns:
      this Session instance.
      Throws:
      IllegalStateException - if the Session has already been closed.
    • getIncomingCapacity

      int getIncomingCapacity()
      Returns:
      the current incoming capacity of this session.
    • getRemainingIncomingCapacity

      int getRemainingIncomingCapacity()
      Returns:
      the remaining session capacity based on how many bytes are currently pending,
    • setOutgoingCapacity

      Session setOutgoingCapacity(int outgoingCapacity) throws IllegalStateException
      Sets the maximum number of bytes this session can be write before blocking additional sends until the written bytes are known to have been flushed to the write. This limit is intended to deal with issues of memory allocation when the I/O layer allows for asynchronous writes and finer grained control over the pending write buffers is needed.
      Parameters:
      outgoingCapacity - maximum number of outgoing bytes this session will allow before stopping senders from sending.
      Returns:
      this Session instance.
      Throws:
      IllegalStateException - if the Session has already been closed.
    • getOutgoingCapacity

      int getOutgoingCapacity()
      Returns:
      the current outgoing capacity limit of this session.
    • getRemainingOutgoingCapacity

      int getRemainingOutgoingCapacity()
      Returns:
      the remaining session outgoing capacity based on how many bytes are currently pending,
    • setHandleMax

      Session setHandleMax(long handleMax) throws IllegalStateException
      Set the handle max value for this Session. The handle max value can only be modified prior to a call to Endpoint.open(), once the session has been opened locally an error will be thrown if this method is called.
      Parameters:
      handleMax - The value to set for handle max when opening the session.
      Returns:
      this Session instance.
      Throws:
      IllegalStateException - if the Session has already been opened.
    • getHandleMax

      long getHandleMax()
      Returns:
      the currently configured handle max for this Session
    • getRemoteState

      SessionState getRemoteState()
      Returns:
      the remote session state (as last communicated)
    • senderOpenHandler

      Session senderOpenHandler(EventHandler<Sender> remoteSenderOpenEventHandler)
      Sets a EventHandler for when an AMQP Attach frame is received from the remote peer for a sending link. Used to process remotely initiated sending link. Locally initiated links have their own EventHandler invoked instead. This method is Typically used by servers to listen for remote Receiver creation. If an event handler for remote sender open is registered on this Session for a link scoped to it then this handler will be invoked instead of the variant in the Connection API.
      Parameters:
      remoteSenderOpenEventHandler - the EventHandler that will be signaled when a sender link is remotely opened.
      Returns:
      this session for chaining
    • receiverOpenHandler

      Session receiverOpenHandler(EventHandler<Receiver> remoteReceiverOpenEventHandler)
      Sets a EventHandler for when an AMQP Attach frame is received from the remote peer for a receiving link. Used to process remotely initiated receiving link. Locally initiated links have their own EventHandler invoked instead. This method is Typically used by servers to listen for remote Sender creation. If an event handler for remote sender open is registered on this Session for a link scoped to it then this handler will be invoked instead of the variant in the Connection API.
      Parameters:
      remoteReceiverOpenEventHandler - the EventHandler that will be signaled when a receiver link is remotely opened.
      Returns:
      this session for chaining
    • transactionManagerOpenHandler

      Session transactionManagerOpenHandler(EventHandler<TransactionManager> remoteTxnManagerOpenEventHandler)
      Sets a EventHandler for when an AMQP Attach frame is received from the remote peer for a transaction coordination link. Used to process remotely initiated transaction manager link. Locally initiated links have their own EventHandler invoked instead. This method is Typically used by servers to listen for remote TransactionController creation. If an event handler for remote TransactionController open is registered on this Session for a TransactionController scoped to it then this handler will be invoked instead of the variant in the Connection API.
      Parameters:
      remoteTxnManagerOpenEventHandler - the EventHandler that will be signaled when a TransactionController link is remotely opened.
      Returns:
      this Session for chaining
    • deliveryReadHandler

      Session deliveryReadHandler(EventHandler<IncomingDelivery> delivery)
      Allows monitoring of incoming deliveries to receivers attached to this Session. The Receiver that is the target of the incoming delivery will be notified first of the incoming delivery and any processing should be done using the Receiver.deliveryReadHandler(EventHandler). This event point will be trigger only after the Receiver level handler and should be used to monitor deliveries passing through a session for logging or other state related actions performed by the service managing this session.
      Parameters:
      delivery - The delivery that was read which contains
      Returns:
      this Session for chaining