Example usage for io.netty.handler.codec.memcache.binary BinaryMemcacheOpcodes SET

List of usage examples for io.netty.handler.codec.memcache.binary BinaryMemcacheOpcodes SET

Introduction

In this page you can find the example usage for io.netty.handler.codec.memcache.binary BinaryMemcacheOpcodes SET.

Prototype

byte SET

To view the source code for io.netty.handler.codec.memcache.binary BinaryMemcacheOpcodes SET.

Click Source Link

Usage

From source file:com.couchbase.client.core.endpoint.binary.BinaryCodec.java

License:Open Source License

/**
 * Creates the actual protocol level request for an incoming upsert request.
 *
 * @param request the incoming upsert request.
 * @param ctx the channel handler context for buffer allocations.
 * @return the built protocol request.//from   w w  w  .ja  v a  2s  .c  o  m
 */
private BinaryMemcacheRequest handleUpsertRequest(final UpsertRequest request,
        final ChannelHandlerContext ctx) {
    ByteBuf extras = ctx.alloc().buffer(8);
    extras.writeInt(request.flags());
    extras.writeInt(request.expiration());

    FullBinaryMemcacheRequest msg = new DefaultFullBinaryMemcacheRequest(request.key(), extras,
            request.content());

    msg.setOpcode(BinaryMemcacheOpcodes.SET);
    msg.setKeyLength((short) request.key().length());
    msg.setTotalBodyLength(
            (short) request.key().length() + request.content().readableBytes() + extras.readableBytes());
    msg.setReserved(request.partition());
    msg.setExtrasLength((byte) extras.readableBytes());
    return msg;
}

From source file:com.flysoloing.learning.network.netty.binary.MemcacheClientHandler.java

License:Apache License

/**
 * Transforms basic string requests to binary memcache requests
 *///from  w  w w  . j a  v  a2s  .  co  m
@Override
public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) {
    String command = (String) msg;
    if (command.startsWith("get ")) {
        String keyString = command.substring("get ".length());
        ByteBuf key = Unpooled.wrappedBuffer(keyString.getBytes(CharsetUtil.UTF_8));

        BinaryMemcacheRequest req = new DefaultBinaryMemcacheRequest(key);
        req.setOpcode(BinaryMemcacheOpcodes.GET);

        ctx.write(req, promise);
    } else if (command.startsWith("set ")) {
        String[] parts = command.split(" ", 3);
        if (parts.length < 3) {
            throw new IllegalArgumentException("Malformed Command: " + command);
        }
        String keyString = parts[1];
        String value = parts[2];

        ByteBuf key = Unpooled.wrappedBuffer(keyString.getBytes(CharsetUtil.UTF_8));
        ByteBuf content = Unpooled.wrappedBuffer(value.getBytes(CharsetUtil.UTF_8));
        ByteBuf extras = ctx.alloc().buffer(8);
        extras.writeZero(8);

        BinaryMemcacheRequest req = new DefaultFullBinaryMemcacheRequest(key, extras, content);
        req.setOpcode(BinaryMemcacheOpcodes.SET);

        ctx.write(req, promise);
    } else {
        throw new IllegalStateException("Unknown Message: " + msg);
    }
}

From source file:io.aos.netty5.memcache.binary.MemcacheClientHandler.java

License:Apache License

/**
 * Transforms basic string requests to binary memcache requests
 *//* www .j a  v  a  2  s  .c  o m*/
@Override
public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) {
    String command = (String) msg;
    if (command.startsWith("get ")) {
        String key = command.substring("get ".length());

        BinaryMemcacheRequest req = new DefaultBinaryMemcacheRequest(key);
        req.setOpcode(BinaryMemcacheOpcodes.GET);
        req.setKeyLength((short) key.length());
        req.setTotalBodyLength(key.length());

        ctx.write(req, promise);
    } else if (command.startsWith("set ")) {
        String[] parts = command.split(" ", 3);
        if (parts.length < 3) {
            throw new IllegalArgumentException("Malformed Command: " + command);
        }
        String key = parts[1];
        String value = parts[2];

        ByteBuf content = Unpooled.wrappedBuffer(value.getBytes(CharsetUtil.UTF_8));
        ByteBuf extras = ctx.alloc().buffer(8);

        BinaryMemcacheRequest req = new DefaultFullBinaryMemcacheRequest(key, extras, content);
        req.setOpcode(BinaryMemcacheOpcodes.SET);
        req.setKeyLength((short) key.length());
        req.setExtrasLength((byte) 8);
        req.setTotalBodyLength(key.length() + 8 + value.length());

        ctx.write(req, promise);
    } else {
        throw new IllegalStateException("Unknown Message: " + msg);
    }
}