Interface Delivery

  • All Superinterfaces:
    Extendable
    All Known Implementing Classes:
    DeliveryImpl

    public interface Delivery
    extends Extendable
    A delivery of a message on a particular link. Whilst a message is logically a long-lived object, a delivery is short-lived - it is only intended to be used by the application until it is settled and all its data has been read.
    • Method Detail

      • getTag

        byte[] getTag()
      • getLink

        Link getLink()
      • disposition

        void disposition​(DeliveryState state)
        updates the state of the delivery The new state may have no on-the-wire effect, if delivery settlement was already communicated to/from the peer.
        Parameters:
        state - the new delivery state
      • settle

        void settle()
        Settles this delivery. Causes the delivery to be removed from the connection's work list (see Connection.getWorkHead()). If this delivery is its link's current delivery, the link's current delivery pointer is advanced.
      • isSettled

        boolean isSettled()
        Returns whether this delivery has been settled. TODO proton-j and proton-c return the local and remote statuses respectively. Resolve this ambiguity.
        See Also:
        settle()
      • remotelySettled

        boolean remotelySettled()
      • free

        void free()
        TODO When does an application call this method? Do we really need this?
      • isWritable

        boolean isWritable()
      • setContext

        void setContext​(java.lang.Object o)
      • getContext

        java.lang.Object getContext()
      • isUpdated

        boolean isUpdated()
        Returns whether this delivery's state or settled flag has ever remotely changed. TODO what is the main intended use case for calling this method?
      • clear

        void clear()
      • isPartial

        boolean isPartial()
        Check for whether the delivery is still partial. For a receiving Delivery, this means the delivery does not hold a complete message payload as all the content hasn't been received yet. Note that an aborted delivery will also be considered partial and the full payload won't be received. For a sending Delivery, this means the sender link has not been advanced to complete the delivery yet.
        Returns:
        true if the delivery is partial
        See Also:
        isAborted()
      • isAborted

        boolean isAborted()
        Check for whether the delivery was aborted.
        Returns:
        true if the delivery was aborted.
      • pending

        int pending()
      • isBuffered

        boolean isBuffered()
      • setDefaultDeliveryState

        void setDefaultDeliveryState​(DeliveryState state)
        Configures a default DeliveryState to be used if a received delivery is settled/freed without any disposition state having been previously applied.
        Parameters:
        state - the default delivery state
      • getDefaultDeliveryState

        DeliveryState getDefaultDeliveryState()
      • getMessageFormat

        int getMessageFormat()
        Gets the message-format for this Delivery, representing the 32bit value using an int.
        Returns:
        the message-format
        See Also:
        setMessageFormat(int)