Mercury-IM/core-old/src/main/java/org/mercury_im/messenger/core/connection/ConnectionState.java

49 lines
1.2 KiB
Java

package org.mercury_im.messenger.core.connection;
/**
* {@link MercuryConnection} modeled as a finite state machine.
* Below enums represent the states of the machine.
*/
public enum ConnectionState {
/**
* Connection is disconnected.
* This is the initial state of the machine.
*/
DISCONNECTED,
/**
* The connection is in the process of connecting to the server.
* This state can be reached by issuing a connect() call from within the {@link #DISCONNECTED}
* state.
*/
CONNECTING,
/**
* The connection is successfully connected to the server and the stream has been initiated.
*/
CONNECTED,
/**
* THe connection is authenticated.
* In this state the connection is ready to send and receive stanzas.
*/
AUTHENTICATED,
/**
* The connection is in the process of shutting down.
*/
DISCONNECTING,
/**
* The device doesn't have usable network connectivity.
*/
WAITING_FOR_NETWORK,
/**
* The connection already (unsuccessfully) tried to connect, but failed due to lack of network
* connectivity and is now waiting to retry connecting.
*/
WAITING_FOR_RETRY
}