Interface Link<L extends Link<L>>
- All Superinterfaces:
Endpoint<L>
- All Known Implementing Classes:
ProtonLink,ProtonReceiver,ProtonSender
-
Method Summary
Modifier and TypeMethodDescriptioncreditStateUpdateHandler(EventHandler<L> handler) Handler for link credit updates that occur after a remoteFlowarrives.detach()Detach this end of the link.detachHandler(EventHandler<L> remoteDetachHandler) Sets aEventHandlerfor when an AMQP Detach frame is received from the remote peer for thisLinkwhich would have been locally opened previously, the Detach from would have been marked as not having been closed.intGet the credit that is currently available or assigned to this link.Gets the local link max message size.getName()Gets the parent of thisEndpointwhich can be itself forConnectioninstance.Gets the local link receiver settlement mode.Gets the remote link max message size, as conveyed from the peer via the Attach frame when attaching the link to the session.Gets the remote link receiver settlement mode, as conveyed from the peer via the Attach frame when attaching the link to the session.Gets the remote link sender settlement mode, as conveyed from the peer via the Attach frame when attaching the link to the session.<T extends Terminus>
TReturns the remote targetTerminuscast to the given type.getRole()Gets the local link sender settlement mode.getState()<T extends Terminus>
TReturns the currently set Target for thisLink.booleanIndicates if the link is draining.booleanReturns true if thisLinkis currently locally detached or locally closed meaning the state returned fromgetState()is equal toLinkState.DETACHEDorLinkState.CLOSED.booleanReturns true if thisLinkis currently locally detached meaning the state returned fromgetState()is equal toLinkState.DETACHED.booleanbooleanReturns true if thisLinkis currently remotely closed meaning the state returned fromgetRemoteState()is equal toLinkState.CLOSED.booleanReturns true if thisLinkis currently remotely detached or closed meaning the state returned fromgetRemoteState()is equal toLinkState.DETACHEDorLinkState.CLOSED.booleanReturns true if thisLinkis currently remotely detached meaning the state returned fromgetRemoteState()is equal toLinkState.DETACHED.booleanReturns true if thisLinkis currently remotely open meaning the state returned fromgetRemoteState()is equal toLinkState.ACTIVE.booleanisSender()localDetachHandler(EventHandler<L> localDetachHandler) Sets aEventHandlerfor when an this link is detached locally via a call todetach()This is a convenience event that supplements the normalEndpoint.localCloseHandler(EventHandler)event point if set.parentEndpointClosedHandler(EventHandler<L> handler) setMaxMessageSize(UnsignedLong maxMessageSize) Sets the local link max message size, to be conveyed to the peer via the Attach frame when attaching the link to the session.setReceiverSettleMode(ReceiverSettleMode receiverSettleMode) Sets the receiver settle mode.setSenderSettleMode(SenderSettleMode senderSettleMode) Sets the sender settle mode.setTarget(Coordinator coordinator) Sets theCoordinatortarget to assign to the local end of thisLink.Methods inherited from interface org.apache.qpid.protonj2.engine.Endpoint
close, closeHandler, engineShutdownHandler, getAttachments, getCondition, getDesiredCapabilities, getEngine, getLinkedResource, getLinkedResource, getOfferedCapabilities, getProperties, getRemoteCondition, getRemoteDesiredCapabilities, getRemoteOfferedCapabilities, getRemoteProperties, isLocallyClosed, isLocallyOpen, localCloseHandler, localOpenHandler, open, openHandler, setCondition, setDesiredCapabilities, setLinkedResource, setOfferedCapabilities, setProperties
-
Method Details
-
detach
L detach()Detach this end of the link.- Returns:
- this Link.
- Throws:
EngineStateException- if an error occurs detaching theLinkor the Engine is shutdown.
-
isLocallyDetached
boolean isLocallyDetached()Returns true if thisLinkis currently locally detached meaning the state returned fromgetState()is equal toLinkState.DETACHED. A link is locally detached after a call todetach().- Returns:
- true if the link is locally closed.
- See Also:
-
isLocallyClosedOrDetached
boolean isLocallyClosedOrDetached()Returns true if thisLinkis currently locally detached or locally closed meaning the state returned fromgetState()is equal toLinkState.DETACHEDorLinkState.CLOSED. A link is locally detached after a call todetach()and is locally closed after a call toEndpoint.close().- Returns:
- true if the link is locally closed or detached.
- See Also:
-
getState
LinkState getState()- Returns:
- the local link state
-
getCredit
int getCredit()Get the credit that is currently available or assigned to this link.- Returns:
- the current link credit.
-
isDraining
boolean isDraining()Indicates if the link is draining. For aSenderlink this indicates that the remote has requested that the Sender transmit deliveries up to the currently available credit or indicate that it has no more to send. For aReceiverthis indicates that the Receiver has requested that the Sender consume its outstanding credit.- Returns:
- true if the
Linkis currently marked as draining.
-
getRole
Role getRole()- Returns:
- the
Rolethat this end of the link is performing.
-
isSender
boolean isSender()- Returns:
- true if this link is acting in a sender
Role.
-
isReceiver
boolean isReceiver()- Returns:
- true if this link is acting in a receiver
Role.
-
getConnection
Connection getConnection()- Returns:
- the parent
Connectionfor theLink
-
getSession
Session getSession() -
getParent
Session getParent()Description copied from interface:EndpointGets the parent of thisEndpointwhich can be itself forConnectioninstance. -
getName
String getName()- Returns:
- the link name that is assigned to this
Link
-
setSenderSettleMode
Sets the sender settle mode.Should only be called during link set-up, i.e. before calling
Endpoint.open(). If this endpoint is the initiator of the link, this method can be used to set a value other than the default.If this endpoint is not the initiator, this method should be used to set a local value. According to the AMQP spec, the application may choose to accept the sender's suggestion (accessed by calling
getRemoteSenderSettleMode()) or choose another value. The value has no effect on Proton, but may be useful to the application at a later point.In order to be AMQP compliant the application is responsible for honoring the settlement mode. See
Link.- Parameters:
senderSettleMode- TheSenderSettleModethat will be set on the local end of this link.- Returns:
- this Link.
- Throws:
IllegalStateException- if theLinkhas already been opened.
-
getSenderSettleMode
SenderSettleMode getSenderSettleMode()Gets the local link sender settlement mode.- Returns:
- the local sender settlement mode, or null if none was set.
- See Also:
-
setReceiverSettleMode
Sets the receiver settle mode.Should only be called during link set-up, i.e. before calling
Endpoint.open(). If this endpoint is the initiator of the link, this method can be used to set a value other than the default. Used in analogous way tosetSenderSettleMode(SenderSettleMode)- Parameters:
receiverSettleMode- TheReceiverSettleModethat will be set on the local end of this link.- Returns:
- this Link.
- Throws:
IllegalStateException- if theLinkhas already been opened.
-
getReceiverSettleMode
ReceiverSettleMode getReceiverSettleMode()Gets the local link receiver settlement mode.- Returns:
- the local receiver settlement mode, or null if none was set.
- See Also:
-
setSource
Sets theSourceto assign to the local end of thisLink.Must be called during link setup, i.e. before calling the
Endpoint.open()method.- Parameters:
source- TheSourcethat will be set on the local end of this link.- Returns:
- this Link.
- Throws:
IllegalStateException- if theLinkhas already been opened.
-
getSource
Source getSource()- Returns:
- the
Sourcefor the local end of this link.
-
setTarget
Sets theTargetto assign to the local end of thisLink. Must be called during link setup, i.e. before calling theEndpoint.open()method.- Parameters:
target- TheTargetthat will be set on the local end of this link.- Returns:
- this Link.
- Throws:
IllegalStateException- if theLinkhas already been opened.
-
setTarget
Sets theCoordinatortarget to assign to the local end of thisLink.Must be called during link setup, i.e. before calling the
Endpoint.open()method.- Parameters:
coordinator- TheCoordinatortarget that will be set on the local end of this link.- Returns:
- this Link.
- Throws:
IllegalStateException- if theLinkhas already been opened.
-
getTarget
Returns the currently set Target for thisLink. A link target can be either aTargettype for aSenderorReceiverlink or if the link is to be transaction resource then the target type will be aCoordinatorinstance.- Type Parameters:
T- The terminus type that the target should be cast to on return.- Returns:
- the link target
Terminusfor the local end of this link.
-
setMaxMessageSize
Sets the local link max message size, to be conveyed to the peer via the Attach frame when attaching the link to the session. Null or 0 means no limit.Must be called during link setup, i.e. before calling the
Endpoint.open()method.- Parameters:
maxMessageSize- the local max message size value, or null to clear. 0 also means no limit.- Returns:
- this Link.
- Throws:
IllegalStateException- if theLinkhas already been opened.
-
getMaxMessageSize
UnsignedLong getMaxMessageSize()Gets the local link max message size.- Returns:
- the local max message size, or null if none was set. 0 also means no limit.
- See Also:
-
isRemotelyOpen
boolean isRemotelyOpen()Returns true if thisLinkis currently remotely open meaning the state returned fromgetRemoteState()is equal toLinkState.ACTIVE. A link is remotely opened after anAttachhas been received from the remote and before aDetachhas been received from the remote.- Specified by:
isRemotelyOpenin interfaceEndpoint<L extends Link<L>>- Returns:
- true if the link is remotely open.
- See Also:
-
isRemotelyClosed
boolean isRemotelyClosed()Returns true if thisLinkis currently remotely closed meaning the state returned fromgetRemoteState()is equal toLinkState.CLOSED. A link is remotely closed after anDetachhas been received from the remote with the close flag equal to true.- Specified by:
isRemotelyClosedin interfaceEndpoint<L extends Link<L>>- Returns:
- true if the link is remotely closed.
- See Also:
-
isRemotelyDetached
boolean isRemotelyDetached()Returns true if thisLinkis currently remotely detached meaning the state returned fromgetRemoteState()is equal toLinkState.DETACHED. A link is remotely detached after anDetachhas been received from the remote with the close flag equal to false.- Returns:
- true if the link is remotely detached.
- See Also:
-
isRemotelyClosedOrDetached
boolean isRemotelyClosedOrDetached()Returns true if thisLinkis currently remotely detached or closed meaning the state returned fromgetRemoteState()is equal toLinkState.DETACHEDorLinkState.CLOSED. A link is remotely detached or closed after aDetachhas been received from the remote.- Returns:
- true if the link is remotely detached or closed.
- See Also:
-
getRemoteSource
Source getRemoteSource()- Returns:
- the source
Terminusfor the remote end of this link.
-
getRemoteTarget
Returns the remote targetTerminuscast to the given type. This can be used when the underlying type is known by the caller or as a control to validate the assumption of the underlying type.the currently set Target for this
Link. A link target can be either aTargettype for aSenderorReceiverlink or if the link is to be transaction resource then the target type will be aCoordinatorinstance. -
getRemoteSenderSettleMode
SenderSettleMode getRemoteSenderSettleMode()Gets the remote link sender settlement mode, as conveyed from the peer via the Attach frame when attaching the link to the session.- Returns:
- the sender settlement mode conveyed by the peer, or null if there was none.
- See Also:
-
getRemoteReceiverSettleMode
ReceiverSettleMode getRemoteReceiverSettleMode()Gets the remote link receiver settlement mode, as conveyed from the peer via the Attach frame when attaching the link to the session.- Returns:
- the sender receiver mode conveyed by the peer, or null if there was none.
- See Also:
-
getRemoteMaxMessageSize
UnsignedLong getRemoteMaxMessageSize()Gets the remote link max message size, as conveyed from the peer via the Attach frame when attaching the link to the session.- Returns:
- the remote max message size conveyed by the peer, or null if none was set. 0 also means no limit.
-
getRemoteState
LinkState getRemoteState()- Returns:
- the remote link state (as last communicated)
-
localDetachHandler
Sets aEventHandlerfor when an this link is detached locally via a call todetach()This is a convenience event that supplements the normalEndpoint.localCloseHandler(EventHandler)event point if set. If no local detached event handler is set the endpoint will route the detached event to the local closed event handler if set and allow it to process the event in one location.Typically used by clients for logging or other state update event processing. Clients should not perform any blocking calls within this context. It is an error for the handler to throw an exception and the outcome of doing so is undefined.
- Parameters:
localDetachHandler- TheEventHandlerto notify when this link is locally detached.- Returns:
- the link for chaining.
-
detachHandler
Sets aEventHandlerfor when an AMQP Detach frame is received from the remote peer for thisLinkwhich would have been locally opened previously, the Detach from would have been marked as not having been closed.This is a convenience event that supplements the normal
Endpoint.closeHandler(EventHandler)event point if set. If no detached event handler is set the endpoint will route the detached event to the closed event handler if set and allow it to process the event in one location.- Parameters:
remoteDetachHandler- TheEventHandlerto notify when this link is remotely closed.- Returns:
- the
Linkfor chaining.
-
creditStateUpdateHandler
Handler for link credit updates that occur after a remoteFlowarrives.- Parameters:
handler- An event handler that will be signaled when the link credit is updated by a remote flow.- Returns:
- the
Linkfor chaining.
-
parentEndpointClosedHandler
Sets aEventHandlerfor when the parentSessionorConnectionof this link is locally closed.Typically used by clients for logging or other state update event processing. Clients should not perform any blocking calls within this context. It is an error for the handler to throw an exception and the outcome of doing so is undefined.
- Parameters:
handler- TheEventHandlerto notify when this link's parent Session is locally closed.- Returns:
- the link for chaining.
-