All Downloads are FREE. Search and download functionalities are using the official Maven repository.

redis.netty.BulkReply Maven / Gradle / Ivy

There is a newer version: 0.12
Show newest version
package redis.netty;

import com.google.common.base.Charsets;

import java.io.IOException;
import java.nio.charset.Charset;

import org.jboss.netty.buffer.ChannelBuffer;
import redis.util.Encoding;

import static redis.util.Encoding.numToBytes;

public class BulkReply implements Reply {
  public static final char MARKER = '$';
  private final ChannelBuffer bytes;

  public BulkReply(ChannelBuffer bytes) {
    this.bytes = bytes;
  }

  @Override
  public ChannelBuffer data() {
    return bytes;
  }

  public String asAsciiString() {
    if (bytes == null) return null;
    return bytes.toString(Charsets.US_ASCII);
  }

  public String asUTF8String() {
    if (bytes == null) return null;
    return bytes.toString(Charsets.UTF_8);
  }

  public String asString(Charset charset) {
    if (bytes == null) return null;
    return bytes.toString(charset);
  }

  @Override
  public void write(ChannelBuffer os) throws IOException {
    os.writeByte(MARKER);
    os.writeBytes(numToBytes(bytes.capacity(), true));
    os.writeBytes(bytes);
    os.writeBytes(CRLF);
  }

  public String toString() {
    return asUTF8String();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy