public class DefaultEndpoint extends Object implements RedisChannelWriter, Endpoint
Endpoint
implementation.Constructor and Description |
---|
DefaultEndpoint(ClientOptions clientOptions)
Create a new
DefaultEndpoint . |
Modifier and Type | Method and Description |
---|---|
void |
close()
Close the connection.
|
protected <T> T |
doExclusive(Supplier<T> supplier)
Execute a
Supplier callback guarded by an exclusive lock. |
protected List<RedisCommand<?,?,?>> |
drainCommands() |
void |
flushCommands()
Flush pending commands.
|
void |
initialState()
Reset the command-handler to the initial not-connected state.
|
boolean |
isClosed() |
protected String |
logPrefix() |
void |
notifyChannelActive(Channel channel)
Notify about channel activation.
|
void |
notifyChannelInactive(Channel channel)
Notify about channel deactivation.
|
void |
notifyDrainQueuedCommands(io.lettuce.core.protocol.HasQueuedCommands queuedCommands)
Signal the endpoint to drain queued commands from the queue holder.
|
void |
notifyException(Throwable t)
Notify about an exception occured in channel/command processing
|
void |
registerConnectionWatchdog(ConnectionWatchdog connectionWatchdog)
Associate a
ConnectionWatchdog with the Endpoint . |
void |
reset()
Reset the writer state.
|
void |
setAutoFlushCommands(boolean autoFlush)
Disable or enable auto-flush behavior.
|
void |
setConnectionFacade(ConnectionFacade connectionFacade)
Set the corresponding connection facade in order to notify it about channel active/inactive state.
|
<K,V> Collection<RedisCommand<K,V,?>> |
write(Collection<? extends RedisCommand<K,V,?>> commands)
Write multiple commands on the channel.
|
<K,V,T> RedisCommand<K,V,T> |
write(RedisCommand<K,V,T> command)
Write a command on the channel.
|
protected <C extends RedisCommand<?,?,T>,T> |
writeToBuffer(C command) |
protected volatile Channel channel
public DefaultEndpoint(ClientOptions clientOptions)
DefaultEndpoint
.clientOptions
- client options for this connection, must not be nullpublic void setConnectionFacade(ConnectionFacade connectionFacade)
RedisChannelWriter
setConnectionFacade
in interface RedisChannelWriter
connectionFacade
- the connection facade (external connection object)public void setAutoFlushCommands(boolean autoFlush)
RedisChannelWriter
RedisChannelWriter.flushCommands()
is
issued. After calling RedisChannelWriter.flushCommands()
commands are sent to the transport and executed by Redis.setAutoFlushCommands
in interface RedisChannelWriter
autoFlush
- state of autoFlush.public <K,V,T> RedisCommand<K,V,T> write(RedisCommand<K,V,T> command)
RedisChannelWriter
write
in interface RedisChannelWriter
K
- key typeV
- value typeT
- result typecommand
- the Redis command.public <K,V> Collection<RedisCommand<K,V,?>> write(Collection<? extends RedisCommand<K,V,?>> commands)
RedisChannelWriter
write
in interface RedisChannelWriter
K
- key typeV
- value typecommands
- the Redis commands.protected <C extends RedisCommand<?,?,T>,T> void writeToBuffer(C command)
public void notifyChannelActive(Channel channel)
Endpoint
notifyChannelActive
in interface Endpoint
channel
- the channelpublic void notifyChannelInactive(Channel channel)
Endpoint
notifyChannelInactive
in interface Endpoint
channel
- the channelpublic void notifyException(Throwable t)
Endpoint
notifyException
in interface Endpoint
t
- the Exceptionpublic void registerConnectionWatchdog(ConnectionWatchdog connectionWatchdog)
Endpoint
ConnectionWatchdog
with the Endpoint
.registerConnectionWatchdog
in interface Endpoint
connectionWatchdog
- the connection watchdog.public void flushCommands()
RedisChannelWriter
flushCommands
in interface RedisChannelWriter
public void close()
close
in interface RedisChannelWriter
close
in interface Closeable
close
in interface AutoCloseable
public void reset()
reset
in interface RedisChannelWriter
public void initialState()
public void notifyDrainQueuedCommands(io.lettuce.core.protocol.HasQueuedCommands queuedCommands)
Endpoint
notifyDrainQueuedCommands
in interface Endpoint
queuedCommands
- the queue holder.public boolean isClosed()
protected <T> T doExclusive(Supplier<T> supplier)
Supplier
callback guarded by an exclusive lock.T
- supplier
- protected List<RedisCommand<?,?,?>> drainCommands()
protected String logPrefix()
Copyright © 2017 lettuce.io. All rights reserved.