Class ClientStreamSender

All Implemented Interfaces:
AutoCloseable, Link<StreamSender>, StreamSender

public final class ClientStreamSender extends ClientSenderLinkType<StreamSender> implements StreamSender
Client implementation of a StreamSender.
  • Method Details

    • send

      public StreamTracker send(Message<?> message) throws ClientException
      Description copied from interface: StreamSender
      Send the given message immediately if there is credit available or blocks if the link has not yet been granted credit or there is a streaming send ongoing.

      Upon successfully sending the message the methods returns a Tracker that can be used to await settlement of the message from the remote. If the sender has been configured to send the message pre-settled then the resulting Tracker will immediately report the message as remotely settlement and accepted.

      Specified by:
      send in interface StreamSender
      Parameters:
      message - the Message to send.
      Returns:
      the Tracker for the message delivery
      Throws:
      ClientException - if an error occurs while initiating the send operation.
    • send

      public StreamTracker send(Message<?> message, Map<String,Object> deliveryAnnotations) throws ClientException
      Description copied from interface: StreamSender
      Send the given message immediately if there is credit available or blocks if the link has not yet been granted credit or there is a streaming send ongoing. The provided delivery annotations are encoded along with the message, the annotations can be passed repeatedly to send calls if sending the same delivery annotations with each message.

      Upon successfully sending the message the methods returns a Tracker that can be used to await settlement of the message from the remote. If the sender has been configured to send the message pre-settled then the resulting Tracker will immediately report the message as remotely settlement and accepted.

      Specified by:
      send in interface StreamSender
      Parameters:
      message - the Message to send.
      deliveryAnnotations - the delivery annotations that should be included in the sent Message.
      Returns:
      the StreamTracker for the message delivery
      Throws:
      ClientException - if an error occurs while initiating the send operation.
    • trySend

      public StreamTracker trySend(Message<?> message) throws ClientException
      Description copied from interface: StreamSender
      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 or a streaming send is ongoing.

      Upon successfully sending the message the methods returns a Tracker that can be used to await settlement of the message from the remote. If the sender has been configured to send the message pre-settled then the resulting Tracker will immediately report the message as remotely settlement and accepted.

      Specified by:
      trySend in interface StreamSender
      Parameters:
      message - the Message to send if credit is available.
      Returns:
      the StreamTracker for the message delivery or null if no credit for sending.
      Throws:
      ClientException - if an error occurs while initiating the send operation.
    • trySend

      public StreamTracker trySend(Message<?> message, Map<String,Object> deliveryAnnotations) throws ClientException
      Description copied from interface: StreamSender
      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. The provided delivery annotations are encoded along with the message, the annotations can be passed repeatedly to send calls if sending the same delivery annotations with each message.

      Upon successfully sending the message the methods returns a Tracker that can be used to await settlement of the message from the remote. If the sender has been configured to send the message pre-settled then the resulting Tracker will immediately report the message as remotely settlement and accepted.

      Specified by:
      trySend in interface StreamSender
      Parameters:
      message - the Message to send if credit is available.
      deliveryAnnotations - the delivery annotations that should be included in the sent Message.
      Returns:
      the StreamTracker for the message delivery or null if no credit for sending.
      Throws:
      ClientException - if an error occurs while initiating the send operation.
    • beginMessage

      public org.apache.qpid.protonj2.client.impl.ClientStreamSenderMessage beginMessage() throws ClientException
      Description copied from interface: StreamSender
      Creates and returns a new StreamSenderMessage that can be used by the caller to perform streaming sends of large message payload data.
      Specified by:
      beginMessage in interface StreamSender
      Returns:
      a new StreamSenderMessage that can be used to stream message data to the remote.
      Throws:
      ClientException - if an error occurs while initiating a new streaming send message.
    • beginMessage

      public org.apache.qpid.protonj2.client.impl.ClientStreamSenderMessage beginMessage(Map<String,Object> deliveryAnnotations) throws ClientException
      Description copied from interface: StreamSender
      Creates and returns a new StreamSenderMessage that can be used by the caller to perform streaming sends of large message payload data. The provided delivery annotations are encoded along with the message, the annotations can be passed repeatedly to send calls if sending the same delivery annotations with each message.
      Specified by:
      beginMessage in interface StreamSender
      Parameters:
      deliveryAnnotations - the delivery annotations that should be included in the sent StreamSenderMessage.
      Returns:
      a new StreamSenderMessage that can be used to stream message data to the remote.
      Throws:
      ClientException - if an error occurs while initiating a new streaming send message.
    • self

      protected StreamSender self()
      Specified by:
      self in class ClientLinkType<StreamSender,Sender>
    • linkSpecificLocalOpenHandler

      protected void linkSpecificLocalOpenHandler()
      Specified by:
      linkSpecificLocalOpenHandler in class ClientLinkType<StreamSender,Sender>
    • recreateLinkForReconnect

      protected void recreateLinkForReconnect()
      Specified by:
      recreateLinkForReconnect in class ClientLinkType<StreamSender,Sender>
    • linkSpecificCleanupHandler

      protected void linkSpecificCleanupHandler(ClientException failureCause)
      Specified by:
      linkSpecificCleanupHandler in class ClientLinkType<StreamSender,Sender>
    • linkSpecificLocalCloseHandler

      protected void linkSpecificLocalCloseHandler()
      Specified by:
      linkSpecificLocalCloseHandler in class ClientLinkType<StreamSender,Sender>
    • linkSpecificRemoteOpenHandler

      protected void linkSpecificRemoteOpenHandler()
      Specified by:
      linkSpecificRemoteOpenHandler in class ClientLinkType<StreamSender,Sender>
    • linkSpecificRemoteCloseHandler

      protected void linkSpecificRemoteCloseHandler()
      Specified by:
      linkSpecificRemoteCloseHandler in class ClientLinkType<StreamSender,Sender>