public class MqttToken extends java.lang.Object implements IMqttToken
A token that implements the ImqttToken interface is returned from all non-blocking method with the exception of publish.
IMqttToken
Modifier and Type | Field and Description |
---|---|
Token |
internalTok
A reference to the the class that provides most of the implementation of the
MqttToken.
|
Constructor and Description |
---|
MqttToken() |
MqttToken(java.lang.String logContext) |
Modifier and Type | Method and Description |
---|---|
IMqttActionListener |
getActionCallback()
Return the async listener for this token.
|
IMqttAsyncClient |
getClient()
Returns the MQTT client that is responsible for processing the asynchronous
action
|
MqttException |
getException()
Returns an exception providing more detail if an operation failed.
|
int[] |
getGrantedQos()
Returns the granted QoS list from a suback
|
int |
getMessageId()
Returns the message ID of the message that is associated with the token.
|
MqttWireMessage |
getResponse()
Returns the response wire message
|
boolean |
getSessionPresent()
Returns the session present flag from a connack
|
java.lang.String[] |
getTopics()
Returns the topic string(s) for the action being tracked by this
token.
|
java.lang.Object |
getUserContext()
Retrieve the context associated with an action.
|
boolean |
isComplete()
Returns whether or not the action has finished.
|
void |
setActionCallback(IMqttActionListener listener)
Register a listener to be notified when an action completes.
|
void |
setUserContext(java.lang.Object userContext)
Store some context associated with an action.
|
void |
waitForCompletion()
Blocks the current thread until the action this token is associated with has
completed.
|
void |
waitForCompletion(long timeout)
Blocks the current thread until the action this token is associated with has
completed.
|
public Token internalTok
public MqttToken()
public MqttToken(java.lang.String logContext)
public MqttException getException()
IMqttToken
While an action in in progress and when an action completes successfully null will be returned. Certain errors like timeout or shutting down will not set the exception as the action has not failed or completed at that time
getException
in interface IMqttToken
public boolean isComplete()
IMqttToken
True will be returned both in the case where the action finished successfully
and in the case where it failed. If the action failed IMqttToken.getException()
will
be non null.
isComplete
in interface IMqttToken
public void setActionCallback(IMqttActionListener listener)
IMqttToken
Once a listener is registered it will be invoked when the action the token is associated with either succeeds or fails.
setActionCallback
in interface IMqttToken
listener
- to be invoked once the action completespublic IMqttActionListener getActionCallback()
IMqttToken
getActionCallback
in interface IMqttToken
public void waitForCompletion() throws MqttException
IMqttToken
waitForCompletion
in interface IMqttToken
MqttException
- if there was a problem with the action associated with the token.IMqttToken.waitForCompletion(long)
public void waitForCompletion(long timeout) throws MqttException
IMqttToken
The timeout specifies the maximum time it will block for. If the action completes before the timeout then control returns immediately, if not it will block until the timeout expires.
If the action being tracked fails or the timeout expires an exception will be thrown. In the event of a timeout the action may complete after timeout.
waitForCompletion
in interface IMqttToken
timeout
- the maximum amount of time to wait for, in milliseconds.MqttException
- if there was a problem with the action associated with the token.public IMqttAsyncClient getClient()
IMqttToken
getClient
in interface IMqttToken
public java.lang.String[] getTopics()
IMqttToken
getTopics
in interface IMqttToken
public java.lang.Object getUserContext()
IMqttToken
Allows the ActionListener associated with an action to retrieve any context that was associated with the action when the action was invoked. If not context was provided null is returned.
getUserContext
in interface IMqttToken
public void setUserContext(java.lang.Object userContext)
IMqttToken
Allows the caller of an action to store some context that can be accessed from within the ActionListener associated with the action. This can be useful when the same ActionListener is associated with multiple actions
setUserContext
in interface IMqttToken
userContext
- to associate with an actionpublic int getMessageId()
IMqttToken
getMessageId
in interface IMqttToken
public int[] getGrantedQos()
IMqttToken
getGrantedQos
in interface IMqttToken
public boolean getSessionPresent()
IMqttToken
getSessionPresent
in interface IMqttToken
public MqttWireMessage getResponse()
IMqttToken
getResponse
in interface IMqttToken