K
- Key type.V
- Value type.T
- Output type.public abstract class CommandOutput<K,V,T> extends Object
Provides common decode methods and parsing functionality for output handling. Template methods that accept response values
throw UnsupportedOperationException
unless overridden by the concrete implementation.
Command outputs may accumulate their state until a command is finished or emit partial results during the decode process.
Output implementations that wish to emit partial results can implement StreamingOutput
push individual output
elements to a StreamingOutput.Subscriber
.
Modifier and Type | Field and Description |
---|---|
protected RedisCodec<K,V> |
codec |
protected String |
error |
protected T |
output |
Constructor and Description |
---|
CommandOutput(RedisCodec<K,V> codec,
T output)
Initialize a new instance that encodes and decodes keys and values using the supplied codec.
|
Modifier and Type | Method and Description |
---|---|
void |
complete(int depth)
Mark the command output complete.
|
protected String |
decodeAscii(ByteBuffer bytes) |
T |
get()
Get the command output.
|
String |
getError()
Get the error that occurred.
|
boolean |
hasError()
Check if the command resulted in an error.
|
void |
multi(int count)
Mark the beginning of a multi sequence (array).
|
void |
multiArray(int count)
Mark the beginning of a multi sequence (array).
|
void |
multiMap(int count)
Mark the beginning of a multi sequence (map).
|
void |
multiPush(int count)
Mark the beginning of a multi sequence (push-array).
|
void |
multiSet(int count)
Mark the beginning of a set.
|
void |
set(boolean value)
Update the command output with a boolean.
|
void |
set(ByteBuffer bytes)
Update the command output with a sequence of bytes, or
null . |
void |
set(double number)
Update the command output with a floating-point number.
|
void |
set(long integer)
Update the command output with a 64-bit signed integer.
|
void |
setBigNumber(ByteBuffer bytes)
Update the command output with a big number.
|
void |
setError(ByteBuffer error)
Set command output to an error message from the server.
|
void |
setError(String error)
Set command output to an error message from the client.
|
void |
setSingle(ByteBuffer bytes)
Update the command output with a sequence of bytes, or
null representing a simple string. |
String |
toString() |
protected final RedisCodec<K,V> codec
protected T output
protected String error
public CommandOutput(RedisCodec<K,V> codec, T output)
codec
- Codec used to encode/decode keys and values, must not be null
.output
- Initial value of output.public T get()
public void set(ByteBuffer bytes)
null
. Concrete CommandOutput
implementations must
override this method to decode bulk
/bytes response values.bytes
- The command output, or null.public void setSingle(ByteBuffer bytes)
null
representing a simple string. Concrete
CommandOutput
implementations must override this method to decode single
/bytes response values.bytes
- The command output, or null.public void setBigNumber(ByteBuffer bytes)
CommandOutput
implementations must override this method to
decode big number
response values.bytes
- The command output, or null.public void set(long integer)
CommandOutput
implementations must override this
method to decode number
(integer) response values.integer
- The command output.public void set(double number)
CommandOutput
implementations must override this
method to decode double
response values.number
- The command output.public void set(boolean value)
CommandOutput
implementations must override this method to
decode boolean
response values.value
- The command output.public void setError(ByteBuffer error)
error
- Error message.public void setError(String error)
error
- Error message.public boolean hasError()
public String getError()
public void complete(int depth)
depth
- Remaining depth of output queue.protected String decodeAscii(ByteBuffer bytes)
public void multi(int count)
count
- expected number of elements in this multi sequence.public void multiArray(int count)
count
- expected number of elements in this multi sequence.public void multiPush(int count)
count
- expected number of elements in this multi sequence.public void multiMap(int count)
count
- expected number of elements in this multi sequence.public void multiSet(int count)
count
- expected number of elements in this multi sequence.Copyright © 2022 lettuce.io. All rights reserved.