Package org.apache.pulsar.client.impl
Class ClientCnxIdleState
java.lang.Object
org.apache.pulsar.client.impl.ClientCnxIdleState
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
Indicates the usage status of the connection and whether it has been released. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
doIdleDetect
(long maxIdleSeconds) Check whether the connection is idle, and if so, set the idle-state to #ClientCnxIdleState.State.IDLE
.Get idle-stat.boolean
isIdle()
boolean
boolean
boolean
isUsing()
void
Try to transform the state of the connection to #ClientCnxIdleState.State.IDLE
, state should only be transformed to #ClientCnxIdleState.State.IDLE
from state #ClientCnxIdleState.State.USING
.boolean
Changes the idle-state of the connection to #ClientCnxIdleState.State.RELEASED
, This method only changes this connection from the #ClientCnxIdleState.State.RELEASING
state to the #ClientCnxIdleState.State.RELEASED
state, and close if change state to #ClientCnxIdleState.State.RELEASED
success.boolean
Changes the idle-state of the connection to #ClientCnxIdleState.State.RELEASING
, This method only changes this connection from the #ClientCnxIdleState.State.IDLE
state to the #ClientCnxIdleState.State.RELEASING
state.boolean
Changes the idle-state of the connection to #ClientCnxIdleState.State.USING
as much as possible, This method is used when connection borrow, and resetidleMarkTime
if change state to #ClientCnxIdleState.State.USING
success.
-
Constructor Details
-
ClientCnxIdleState
-
-
Method Details
-
getIdleStat
Get idle-stat.- Returns:
- connection idle-stat
-
isUsing
public boolean isUsing()- Returns:
- Whether this connection is in use.
-
isIdle
public boolean isIdle()- Returns:
- Whether this connection is in idle.
-
isReleasing
public boolean isReleasing()- Returns:
- Whether this connection is in idle and will be released soon.
-
isReleased
public boolean isReleased()- Returns:
- Whether this connection has already been released.
-
tryMarkIdleAndInitIdleTime
public void tryMarkIdleAndInitIdleTime()Try to transform the state of the connection to #ClientCnxIdleState.State.IDLE
, state should only be transformed to #ClientCnxIdleState.State.IDLE
from state #ClientCnxIdleState.State.USING
. if the state is successfully transformed, "idleMarkTime" will be assigned to current time. -
tryMarkUsingAndClearIdleTime
public boolean tryMarkUsingAndClearIdleTime()Changes the idle-state of the connection to #ClientCnxIdleState.State.USING
as much as possible, This method is used when connection borrow, and resetidleMarkTime
if change state to #ClientCnxIdleState.State.USING
success.- Returns:
- Whether change idle-stat to #
ClientCnxIdleState.State.USING
success. False is returned only if the connection has already been released.
-
tryMarkReleasing
public boolean tryMarkReleasing()Changes the idle-state of the connection to #ClientCnxIdleState.State.RELEASING
, This method only changes this connection from the #ClientCnxIdleState.State.IDLE
state to the #ClientCnxIdleState.State.RELEASING
state.- Returns:
- Whether change idle-stat to #
ClientCnxIdleState.State.RELEASING
success.
-
tryMarkReleasedAndCloseConnection
public boolean tryMarkReleasedAndCloseConnection()Changes the idle-state of the connection to #ClientCnxIdleState.State.RELEASED
, This method only changes this connection from the #ClientCnxIdleState.State.RELEASING
state to the #ClientCnxIdleState.State.RELEASED
state, and close if change state to #ClientCnxIdleState.State.RELEASED
success.- Returns:
- Whether change idle-stat to #
ClientCnxIdleState.State.RELEASED
and close connection success.
-
doIdleDetect
public void doIdleDetect(long maxIdleSeconds) Check whether the connection is idle, and if so, set the idle-state to #ClientCnxIdleState.State.IDLE
. If the state is already idle and the is reached, set the state to #ClientCnxIdleState.State.RELEASING
.
-