73 lines
2.0 KiB
Java
73 lines
2.0 KiB
Java
|
/*
|
||
|
* Copyright 2016 The Netty Project
|
||
|
*
|
||
|
* The Netty Project licenses this file to you under the Apache License, version 2.0 (the
|
||
|
* "License"); you may not use this file except in compliance with the License. You may obtain a
|
||
|
* copy of the License at:
|
||
|
*
|
||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||
|
*
|
||
|
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
||
|
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||
|
* or implied. See the License for the specific language governing permissions and limitations under
|
||
|
* the License.
|
||
|
*/
|
||
|
|
||
|
package io.netty.handler.codec.redis;
|
||
|
|
||
|
/**
|
||
|
* Type of <a href="http://redis.io/topics/protocol">RESP (REdis Serialization Protocol)</a>.
|
||
|
*/
|
||
|
public enum RedisMessageType {
|
||
|
|
||
|
SIMPLE_STRING((byte) '+', true),
|
||
|
ERROR((byte) '-', true),
|
||
|
INTEGER((byte) ':', true),
|
||
|
BULK_STRING((byte) '$', false),
|
||
|
ARRAY_HEADER((byte) '*', false),
|
||
|
ARRAY((byte) '*', false); // for aggregated
|
||
|
|
||
|
private final byte value;
|
||
|
private final boolean inline;
|
||
|
|
||
|
RedisMessageType(byte value, boolean inline) {
|
||
|
this.value = value;
|
||
|
this.inline = inline;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns prefix {@code byte} for this type.
|
||
|
*/
|
||
|
public byte value() {
|
||
|
return value;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns {@code true} if this type is inline type, or returns {@code false}. If this is {@code true},
|
||
|
* this type doesn't have length field.
|
||
|
*/
|
||
|
public boolean isInline() {
|
||
|
return inline;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Return {@link RedisMessageType} for this type prefix {@code byte}.
|
||
|
*/
|
||
|
public static RedisMessageType valueOf(byte value) {
|
||
|
switch (value) {
|
||
|
case '+':
|
||
|
return SIMPLE_STRING;
|
||
|
case '-':
|
||
|
return ERROR;
|
||
|
case ':':
|
||
|
return INTEGER;
|
||
|
case '$':
|
||
|
return BULK_STRING;
|
||
|
case '*':
|
||
|
return ARRAY_HEADER;
|
||
|
default:
|
||
|
throw new RedisCodecException("Unknown RedisMessageType: " + value);
|
||
|
}
|
||
|
}
|
||
|
}
|