Class DeliveryImpl
- java.lang.Object
-
- org.apache.qpid.proton.engine.impl.DeliveryImpl
-
- All Implemented Interfaces:
Delivery
,Extendable
public class DeliveryImpl extends java.lang.Object implements Delivery
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_MESSAGE_FORMAT
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Record
attachments()
int
available()
Returns the number of bytes currently available for this delivery, which may not be complete yet, that are still to either be received by the application or sent by the transport.void
clear()
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.void
free()
TODO When does an application call this method? Do we really need this?java.lang.Object
getContext()
DeliveryState
getDefaultDeliveryState()
LinkImpl
getLink()
DeliveryState
getLocalState()
int
getMessageFormat()
Gets the message-format for this Delivery, representing the 32bit value using an int.DeliveryState
getRemoteState()
byte[]
getTag()
DeliveryImpl
getWorkNext()
boolean
isAborted()
Check for whether the delivery was aborted.boolean
isBuffered()
boolean
isPartial()
Check for whether the delivery is still partial.boolean
isReadable()
Returns whether this delivery has data ready to be received.boolean
isSettled()
Returns whether this delivery has been settled.boolean
isUpdated()
Returns whether this delivery's state or settled flag has ever remotely changed.boolean
isWritable()
DeliveryImpl
next()
int
pending()
boolean
remotelySettled()
void
setContext(java.lang.Object context)
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.void
setMessageFormat(int messageFormat)
Sets the message-format for this Delivery, representing the 32bit value using an int.void
settle()
Settles this delivery.java.lang.String
toString()
-
-
-
Field Detail
-
DEFAULT_MESSAGE_FORMAT
public static final int DEFAULT_MESSAGE_FORMAT
- See Also:
- Constant Field Values
-
-
Method Detail
-
getLocalState
public DeliveryState getLocalState()
- Specified by:
getLocalState
in interfaceDelivery
-
getRemoteState
public DeliveryState getRemoteState()
- Specified by:
getRemoteState
in interfaceDelivery
-
remotelySettled
public boolean remotelySettled()
- Specified by:
remotelySettled
in interfaceDelivery
-
setMessageFormat
public void setMessageFormat(int messageFormat)
Description copied from interface:Delivery
Sets the message-format for this Delivery, representing the 32bit value using an int. The default value is 0 as per the message format defined in the core AMQP 1.0 specification.See the following for more details:
http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#type-transfer
http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#type-message-format
http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#section-message-format
http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#definition-MESSAGE-FORMAT- Specified by:
setMessageFormat
in interfaceDelivery
- Parameters:
messageFormat
- the message format
-
getMessageFormat
public int getMessageFormat()
Description copied from interface:Delivery
Gets the message-format for this Delivery, representing the 32bit value using an int.- Specified by:
getMessageFormat
in interfaceDelivery
- Returns:
- the message-format
- See Also:
Delivery.setMessageFormat(int)
-
disposition
public void disposition(DeliveryState state)
Description copied from interface:Delivery
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.- Specified by:
disposition
in interfaceDelivery
- Parameters:
state
- the new delivery state
-
settle
public void settle()
Description copied from interface:Delivery
Settles this delivery. Causes the delivery to be removed from the connection's work list (seeConnection.getWorkHead()
). If this delivery is its link's current delivery, the link's current delivery pointer is advanced.
-
next
public DeliveryImpl next()
-
free
public void free()
Description copied from interface:Delivery
TODO When does an application call this method? Do we really need this?
-
getWorkNext
public DeliveryImpl getWorkNext()
- Specified by:
getWorkNext
in interfaceDelivery
- See Also:
Connection.getWorkHead()
-
isSettled
public boolean isSettled()
Description copied from interface:Delivery
Returns whether this delivery has been settled. TODO proton-j and proton-c return the local and remote statuses respectively. Resolve this ambiguity.- Specified by:
isSettled
in interfaceDelivery
- See Also:
Delivery.settle()
-
available
public int available()
Description copied from interface:Delivery
Returns the number of bytes currently available for this delivery, which may not be complete yet, that are still to either be received by the application or sent by the transport. Note that this value will change as bytes are received/sent, and is in general not equal to the total length of a delivery, except the point whereDelivery.isPartial()
returns false and no content has yet been received by the application or sent by the transport.- Specified by:
available
in interfaceDelivery
- Returns:
- the number of bytes currently available for the delivery
- See Also:
Receiver.recv(byte[], int, int)
,Receiver.recv(org.apache.qpid.proton.codec.WritableBuffer)
,Sender.send(byte[], int, int)
,Sender.send(org.apache.qpid.proton.codec.ReadableBuffer)
-
isWritable
public boolean isWritable()
- Specified by:
isWritable
in interfaceDelivery
-
isReadable
public boolean isReadable()
Description copied from interface:Delivery
Returns whether this delivery has data ready to be received.- Specified by:
isReadable
in interfaceDelivery
- See Also:
Receiver.recv(byte[], int, int)
-
isAborted
public boolean isAborted()
Description copied from interface:Delivery
Check for whether the delivery was aborted.
-
isPartial
public boolean isPartial()
Description copied from interface:Delivery
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 anaborted
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 beenadvanced
to complete the delivery yet.- Specified by:
isPartial
in interfaceDelivery
- Returns:
- true if the delivery is partial
- See Also:
Delivery.isAborted()
-
isUpdated
public boolean isUpdated()
Description copied from interface:Delivery
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?
-
isBuffered
public boolean isBuffered()
- Specified by:
isBuffered
in interfaceDelivery
-
getContext
public java.lang.Object getContext()
- Specified by:
getContext
in interfaceDelivery
-
setContext
public void setContext(java.lang.Object context)
- Specified by:
setContext
in interfaceDelivery
-
attachments
public Record attachments()
- Specified by:
attachments
in interfaceExtendable
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
setDefaultDeliveryState
public void setDefaultDeliveryState(DeliveryState state)
Description copied from interface:Delivery
Configures a default DeliveryState to be used if a received delivery is settled/freed without any disposition state having been previously applied.- Specified by:
setDefaultDeliveryState
in interfaceDelivery
- Parameters:
state
- the default delivery state
-
getDefaultDeliveryState
public DeliveryState getDefaultDeliveryState()
- Specified by:
getDefaultDeliveryState
in interfaceDelivery
-
-