diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheDecoder.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheDecoder.java
index a3cdd1ca4d..81e8ccde4e 100644
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheDecoder.java
+++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheDecoder.java
@@ -36,17 +36,14 @@ import static io.netty.buffer.ByteBufUtil.*;
*
* The difference in the protocols (header) is implemented by the subclasses.
*/
-public abstract class AbstractBinaryMemcacheDecoder
- , H extends BinaryMemcacheMessageHeader>
+public abstract class AbstractBinaryMemcacheDecoder
extends AbstractMemcacheObjectDecoder {
public static final int DEFAULT_MAX_CHUNK_SIZE = 8192;
private final int chunkSize;
- private H currentHeader;
- private ByteBuf currentExtras;
- private String currentKey;
+ private M currentMessage;
private int alreadyReadChunkSize;
private State state = State.READ_HEADER;
@@ -80,20 +77,20 @@ public abstract class AbstractBinaryMemcacheDecoder
}
resetDecoder();
- currentHeader = decodeHeader(in);
+ currentMessage = decodeHeader(in);
state = State.READ_EXTRAS;
} catch (Exception e) {
out.add(invalidMessage(e));
return;
}
case READ_EXTRAS: try {
- byte extrasLength = currentHeader.getExtrasLength();
+ byte extrasLength = currentMessage.getExtrasLength();
if (extrasLength > 0) {
if (in.readableBytes() < extrasLength) {
return;
}
- currentExtras = readBytes(ctx.alloc(), in, extrasLength);
+ currentMessage.setExtras(readBytes(ctx.alloc(), in, extrasLength));
}
state = State.READ_KEY;
@@ -102,27 +99,26 @@ public abstract class AbstractBinaryMemcacheDecoder
return;
}
case READ_KEY: try {
- short keyLength = currentHeader.getKeyLength();
+ short keyLength = currentMessage.getKeyLength();
if (keyLength > 0) {
if (in.readableBytes() < keyLength) {
return;
}
- currentKey = in.toString(in.readerIndex(), keyLength, CharsetUtil.UTF_8);
+ currentMessage.setKey(in.toString(in.readerIndex(), keyLength, CharsetUtil.UTF_8));
in.skipBytes(keyLength);
}
- out.add(buildMessage(currentHeader, currentExtras, currentKey));
- currentExtras = null;
+ out.add(currentMessage);
state = State.READ_CONTENT;
} catch (Exception e) {
out.add(invalidMessage(e));
return;
}
case READ_CONTENT: try {
- int valueLength = currentHeader.getTotalBodyLength()
- - currentHeader.getKeyLength()
- - currentHeader.getExtrasLength();
+ int valueLength = currentMessage.getTotalBodyLength()
+ - currentMessage.getKeyLength()
+ - currentMessage.getExtrasLength();
int toRead = in.readableBytes();
if (valueLength > 0) {
if (toRead == 0) {
@@ -205,8 +201,8 @@ public abstract class AbstractBinaryMemcacheDecoder
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
super.channelInactive(ctx);
- if (currentExtras != null) {
- currentExtras.release();
+ if (currentMessage.getExtras() != null) {
+ currentMessage.getExtras().release();
}
resetDecoder();
@@ -216,29 +212,17 @@ public abstract class AbstractBinaryMemcacheDecoder
* Prepare for next decoding iteration.
*/
protected void resetDecoder() {
- currentHeader = null;
- currentExtras = null;
- currentKey = null;
+ currentMessage = null;
alreadyReadChunkSize = 0;
}
/**
- * Decode and return the parsed {@link BinaryMemcacheMessageHeader}.
+ * Decode and return the parsed {@link BinaryMemcacheMessage}.
*
* @param in the incoming buffer.
* @return the decoded header.
*/
- protected abstract H decodeHeader(ByteBuf in);
-
- /**
- * Build the complete message, based on the information decoded.
- *
- * @param header the header of the message.
- * @param extras possible extras.
- * @param key possible key.
- * @return the decoded message.
- */
- protected abstract M buildMessage(H header, ByteBuf extras, String key);
+ protected abstract M decodeHeader(ByteBuf in);
/**
* Helper method to create a upstream message when the incoming parsing did fail.
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheEncoder.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheEncoder.java
index cc7dfe5411..d959e7b493 100644
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheEncoder.java
+++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheEncoder.java
@@ -24,8 +24,7 @@ import io.netty.util.CharsetUtil;
/**
* A {@link MessageToByteEncoder} that encodes binary memache messages into bytes.
*/
-public abstract class AbstractBinaryMemcacheEncoder
- , H extends BinaryMemcacheMessageHeader>
+public abstract class AbstractBinaryMemcacheEncoder
extends AbstractMemcacheObjectEncoder {
/**
@@ -37,7 +36,7 @@ public abstract class AbstractBinaryMemcacheEncoder
protected ByteBuf encodeMessage(ChannelHandlerContext ctx, M msg) {
ByteBuf buf = ctx.alloc().buffer(DEFAULT_BUFFER_SIZE);
- encodeHeader(buf, msg.getHeader());
+ encodeHeader(buf, msg);
encodeExtras(buf, msg.getExtras());
encodeKey(buf, msg.getKey());
@@ -78,9 +77,9 @@ public abstract class AbstractBinaryMemcacheEncoder
* This methods needs to be implemented by a sub class because the header is different
* for both requests and responses.
*
- * @param buf the {@link ByteBuf} to write into.
- * @param header the header to encode.
+ * @param buf the {@link ByteBuf} to write into.
+ * @param msg the message to encode.
*/
- protected abstract void encodeHeader(ByteBuf buf, H header);
+ protected abstract void encodeHeader(ByteBuf buf, M msg);
}
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheMessage.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheMessage.java
index 0a80a3401e..4de4bde858 100644
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheMessage.java
+++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheMessage.java
@@ -21,43 +21,40 @@ import io.netty.handler.codec.memcache.AbstractMemcacheObject;
/**
* Default implementation of a {@link BinaryMemcacheMessage}.
*/
-public abstract class AbstractBinaryMemcacheMessage
+public abstract class AbstractBinaryMemcacheMessage
extends AbstractMemcacheObject
- implements BinaryMemcacheMessage {
-
- /**
- * Contains the message header.
- */
- private final H header;
+ implements BinaryMemcacheMessage {
/**
* Contains the optional key.
*/
- private final String key;
+ private String key;
/**
* Contains the optional extras.
*/
- private final ByteBuf extras;
+ private ByteBuf extras;
+
+ private byte magic;
+ private byte opcode;
+ private short keyLength;
+ private byte extrasLength;
+ private byte dataType;
+ private int totalBodyLength;
+ private int opaque;
+ private long cas;
/**
* Create a new instance with all properties set.
*
- * @param header the message header.
* @param key the message key.
* @param extras the message extras.
*/
- protected AbstractBinaryMemcacheMessage(H header, String key, ByteBuf extras) {
- this.header = header;
+ protected AbstractBinaryMemcacheMessage(String key, ByteBuf extras) {
this.key = key;
this.extras = extras;
}
- @Override
- public H getHeader() {
- return header;
- }
-
@Override
public String getKey() {
return key;
@@ -68,6 +65,106 @@ public abstract class AbstractBinaryMemcacheMessage retain() {
+ public BinaryMemcacheMessage retain() {
if (extras != null) {
extras.retain();
}
@@ -85,7 +182,7 @@ public abstract class AbstractBinaryMemcacheMessage retain(int increment) {
+ public BinaryMemcacheMessage retain(int increment) {
if (extras != null) {
extras.retain(increment);
}
@@ -109,12 +206,12 @@ public abstract class AbstractBinaryMemcacheMessage touch() {
+ public BinaryMemcacheMessage touch() {
return touch(null);
}
@Override
- public BinaryMemcacheMessage touch(Object hint) {
+ public BinaryMemcacheMessage touch(Object hint) {
if (extras != null) {
extras.touch(hint);
}
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheMessageHeader.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheMessageHeader.java
deleted file mode 100644
index 215a989a10..0000000000
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheMessageHeader.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright 2013 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.memcache.binary;
-
-/**
- * The default implementation of a {@link BinaryMemcacheMessageHeader}.
- */
-public abstract class AbstractBinaryMemcacheMessageHeader implements BinaryMemcacheMessageHeader {
-
- private byte magic;
- private byte opcode;
- private short keyLength;
- private byte extrasLength;
- private byte dataType;
- private int totalBodyLength;
- private int opaque;
- private long cas;
-
- @Override
- public byte getMagic() {
- return magic;
- }
-
- @Override
- public BinaryMemcacheMessageHeader setMagic(byte magic) {
- this.magic = magic;
- return this;
- }
-
- @Override
- public long getCAS() {
- return cas;
- }
-
- @Override
- public BinaryMemcacheMessageHeader setCAS(long cas) {
- this.cas = cas;
- return this;
- }
-
- @Override
- public int getOpaque() {
- return opaque;
- }
-
- @Override
- public BinaryMemcacheMessageHeader setOpaque(int opaque) {
- this.opaque = opaque;
- return this;
- }
-
- @Override
- public int getTotalBodyLength() {
- return totalBodyLength;
- }
-
- @Override
- public BinaryMemcacheMessageHeader setTotalBodyLength(int totalBodyLength) {
- this.totalBodyLength = totalBodyLength;
- return this;
- }
-
- @Override
- public byte getDataType() {
- return dataType;
- }
-
- @Override
- public BinaryMemcacheMessageHeader setDataType(byte dataType) {
- this.dataType = dataType;
- return this;
- }
-
- @Override
- public byte getExtrasLength() {
- return extrasLength;
- }
-
- @Override
- public BinaryMemcacheMessageHeader setExtrasLength(byte extrasLength) {
- this.extrasLength = extrasLength;
- return this;
- }
-
- @Override
- public short getKeyLength() {
- return keyLength;
- }
-
- @Override
- public BinaryMemcacheMessageHeader setKeyLength(short keyLength) {
- this.keyLength = keyLength;
- return this;
- }
-
- @Override
- public byte getOpcode() {
- return opcode;
- }
-
- @Override
- public BinaryMemcacheMessageHeader setOpcode(byte opcode) {
- this.opcode = opcode;
- return this;
- }
-}
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheMessage.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheMessage.java
index 799750da79..729ca3b105 100644
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheMessage.java
+++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheMessage.java
@@ -25,18 +25,135 @@ import io.netty.handler.codec.memcache.MemcacheMessage;
* A {@link BinaryMemcacheMessage} always consists of a header and optional extras or/and
* a key.
*
- * @see BinaryMemcacheMessageHeader
* @see BinaryMemcacheRequest
* @see BinaryMemcacheResponse
*/
-public interface BinaryMemcacheMessage extends MemcacheMessage {
+public interface BinaryMemcacheMessage extends MemcacheMessage {
/**
- * Returns the {@link BinaryMemcacheMessageHeader} which contains the full required header.
+ * Returns the magic byte for the message.
*
- * @return the required header.
+ * @return the magic byte.
*/
- H getHeader();
+ byte getMagic();
+
+ /**
+ * Sets the magic byte.
+ *
+ * @param magic the magic byte to use.
+ * @see BinaryMemcacheOpcodes for typesafe opcodes.
+ */
+ BinaryMemcacheMessage setMagic(byte magic);
+
+ /**
+ * Returns the opcode for the message.
+ *
+ * @return the opcode.
+ */
+ byte getOpcode();
+
+ /**
+ * Sets the opcode for the message.
+ *
+ * @param code the opcode to use.
+ */
+ BinaryMemcacheMessage setOpcode(byte code);
+
+ /**
+ * Returns the key length of the message.
+ *
+ * This may return 0, since the key is optional.
+ *
+ * @return the key length.
+ */
+ short getKeyLength();
+
+ /**
+ * Set the key length of the message.
+ *
+ * This may be 0, since the key is optional.
+ *
+ * @param keyLength the key length to use.
+ */
+ BinaryMemcacheMessage setKeyLength(short keyLength);
+
+ /**
+ * Return the extras length of the message.
+ *
+ * This may be 0, since the extras content is optional.
+ *
+ * @return the extras length.
+ */
+ byte getExtrasLength();
+
+ /**
+ * Set the extras length of the message.
+ *
+ * This may be 0, since the extras content is optional.
+ *
+ * @param extrasLength the extras length.
+ */
+ BinaryMemcacheMessage setExtrasLength(byte extrasLength);
+
+ /**
+ * Returns the data type of the message.
+ *
+ * @return the data type of the message.
+ */
+ byte getDataType();
+
+ /**
+ * Sets the data type of the message.
+ *
+ * @param dataType the data type of the message.
+ */
+ BinaryMemcacheMessage setDataType(byte dataType);
+
+ /**
+ * Returns the total body length.
+ *
+ * Note that this may be 0, since the body is optional.
+ *
+ * @return the total body length.
+ */
+ int getTotalBodyLength();
+
+ /**
+ * Sets the total body length.
+ *
+ * Note that this may be 0, since the body length is optional.
+ *
+ * @param totalBodyLength the total body length.
+ */
+ BinaryMemcacheMessage setTotalBodyLength(int totalBodyLength);
+
+ /**
+ * Returns the opaque value.
+ *
+ * @return the opaque value.
+ */
+ int getOpaque();
+
+ /**
+ * Sets the opaque value.
+ *
+ * @param opaque the opqaue value to use.
+ */
+ BinaryMemcacheMessage setOpaque(int opaque);
+
+ /**
+ * Returns the CAS identifier.
+ *
+ * @return the CAS identifier.
+ */
+ long getCAS();
+
+ /**
+ * Sets the CAS identifier.
+ *
+ * @param cas the CAS identifier to use.
+ */
+ BinaryMemcacheMessage setCAS(long cas);
/**
* Returns the optional key of the document.
@@ -45,6 +162,13 @@ public interface BinaryMemcacheMessage ex
*/
String getKey();
+ /**
+ * Sets the key of the document.
+ *
+ * @param key the key of the message.
+ */
+ BinaryMemcacheMessage setKey(String key);
+
/**
* Returns a {@link ByteBuf} representation of the optional extras.
*
@@ -52,21 +176,28 @@ public interface BinaryMemcacheMessage ex
*/
ByteBuf getExtras();
+ /**
+ * Sets the extras buffer on the message.
+ *
+ * @param extras the extras buffer of the document.
+ */
+ BinaryMemcacheMessage setExtras(ByteBuf extras);
+
/**
* Increases the reference count by {@code 1}.
*/
@Override
- BinaryMemcacheMessage retain();
+ BinaryMemcacheMessage retain();
/**
* Increases the reference count by the specified {@code increment}.
*/
@Override
- BinaryMemcacheMessage retain(int increment);
+ BinaryMemcacheMessage retain(int increment);
@Override
- BinaryMemcacheMessage touch();
+ BinaryMemcacheMessage touch();
@Override
- BinaryMemcacheMessage touch(Object hint);
+ BinaryMemcacheMessage touch(Object hint);
}
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheMessageHeader.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheMessageHeader.java
deleted file mode 100644
index f5c720e8d9..0000000000
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheMessageHeader.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright 2013 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.memcache.binary;
-
-/**
- * Contains all common header fields in a {@link BinaryMemcacheMessage}.
- *
- * Since the header is different for a {@link BinaryMemcacheRequest} and {@link BinaryMemcacheResponse}, see
- * {@link BinaryMemcacheRequestHeader} and {@link BinaryMemcacheResponseHeader}.
- *
- * The {@link BinaryMemcacheMessageHeader} is always 24 bytes in length and needs to be filled up if values are
- * not set.
- *
- * Fore more information, see the official protocol specification
- * here.
- */
-public interface BinaryMemcacheMessageHeader {
-
- /**
- * Returns the magic byte for the message.
- *
- * @return the magic byte.
- */
- byte getMagic();
-
- /**
- * Sets the magic byte.
- *
- * @param magic the magic byte to use.
- * @see BinaryMemcacheOpcodes for typesafe opcodes.
- */
- BinaryMemcacheMessageHeader setMagic(byte magic);
-
- /**
- * Returns the opcode for the message.
- *
- * @return the opcode.
- */
- byte getOpcode();
-
- /**
- * Sets the opcode for the message.
- *
- * @param code the opcode to use.
- */
- BinaryMemcacheMessageHeader setOpcode(byte code);
-
- /**
- * Returns the key length of the message.
- *
- * This may return 0, since the key is optional.
- *
- * @return the key length.
- */
- short getKeyLength();
-
- /**
- * Set the key length of the message.
- *
- * This may be 0, since the key is optional.
- *
- * @param keyLength the key length to use.
- */
- BinaryMemcacheMessageHeader setKeyLength(short keyLength);
-
- /**
- * Return the extras length of the message.
- *
- * This may be 0, since the extras content is optional.
- *
- * @return the extras length.
- */
- byte getExtrasLength();
-
- /**
- * Set the extras length of the message.
- *
- * This may be 0, since the extras content is optional.
- *
- * @param extrasLength the extras length.
- */
- BinaryMemcacheMessageHeader setExtrasLength(byte extrasLength);
-
- /**
- * Returns the data type of the message.
- *
- * @return the data type of the message.
- */
- byte getDataType();
-
- /**
- * Sets the data type of the message.
- *
- * @param dataType the data type of the message.
- */
- BinaryMemcacheMessageHeader setDataType(byte dataType);
-
- /**
- * Returns the total body length.
- *
- * Note that this may be 0, since the body is optional.
- *
- * @return the total body length.
- */
- int getTotalBodyLength();
-
- /**
- * Sets the total body length.
- *
- * Note that this may be 0, since the body length is optional.
- *
- * @param totalBodyLength the total body length.
- */
- BinaryMemcacheMessageHeader setTotalBodyLength(int totalBodyLength);
-
- /**
- * Returns the opaque value.
- *
- * @return the opaque value.
- */
- int getOpaque();
-
- /**
- * Sets the opaque value.
- *
- * @param opaque the opqaue value to use.
- */
- BinaryMemcacheMessageHeader setOpaque(int opaque);
-
- /**
- * Returns the CAS identifier.
- *
- * @return the CAS identifier.
- */
- long getCAS();
-
- /**
- * Sets the CAS identifier.
- *
- * @param cas the CAS identifier to use.
- */
- BinaryMemcacheMessageHeader setCAS(long cas);
-
-}
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheObjectAggregator.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheObjectAggregator.java
index 17a22d2ed6..7c5ddbad80 100644
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheObjectAggregator.java
+++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheObjectAggregator.java
@@ -15,6 +15,7 @@
*/
package io.netty.handler.codec.memcache.binary;
+import io.netty.buffer.ByteBuf;
import io.netty.buffer.CompositeByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandlerContext;
@@ -59,13 +60,11 @@ public class BinaryMemcacheObjectAggregator extends AbstractMemcacheObjectAggreg
}
if (msg instanceof BinaryMemcacheRequest) {
- BinaryMemcacheRequest request = (BinaryMemcacheRequest) msg;
- this.currentMessage = new DefaultFullBinaryMemcacheRequest(request.getHeader(), request.getKey(),
- request.getExtras(), Unpooled.compositeBuffer(getMaxCumulationBufferComponents()));
+ this.currentMessage = toFullRequest((BinaryMemcacheRequest) msg,
+ Unpooled.compositeBuffer(getMaxCumulationBufferComponents()));
} else if (msg instanceof BinaryMemcacheResponse) {
- BinaryMemcacheResponse response = (BinaryMemcacheResponse) msg;
- this.currentMessage = new DefaultFullBinaryMemcacheResponse(response.getHeader(), response.getKey(),
- response.getExtras(), Unpooled.compositeBuffer(getMaxCumulationBufferComponents()));
+ this.currentMessage = toFullResponse((BinaryMemcacheResponse) msg,
+ Unpooled.compositeBuffer(getMaxCumulationBufferComponents()));
} else {
throw new Error();
}
@@ -130,13 +129,9 @@ public class BinaryMemcacheObjectAggregator extends AbstractMemcacheObjectAggreg
FullMemcacheMessage fullMsg;
if (msg instanceof BinaryMemcacheRequest) {
- BinaryMemcacheRequest req = (BinaryMemcacheRequest) msg;
- fullMsg = new DefaultFullBinaryMemcacheRequest(req.getHeader(), req.getKey(), req.getExtras(),
- Unpooled.EMPTY_BUFFER);
+ fullMsg = toFullRequest((BinaryMemcacheRequest) msg, Unpooled.EMPTY_BUFFER);
} else if (msg instanceof BinaryMemcacheResponse) {
- BinaryMemcacheResponse res = (BinaryMemcacheResponse) msg;
- fullMsg = new DefaultFullBinaryMemcacheResponse(res.getHeader(), res.getKey(), res.getExtras(),
- Unpooled.EMPTY_BUFFER);
+ fullMsg = toFullResponse((BinaryMemcacheResponse) msg, Unpooled.EMPTY_BUFFER);
} else {
throw new IllegalStateException();
}
@@ -144,4 +139,38 @@ public class BinaryMemcacheObjectAggregator extends AbstractMemcacheObjectAggreg
return fullMsg;
}
+ private static FullBinaryMemcacheRequest toFullRequest(BinaryMemcacheRequest request, ByteBuf content) {
+ FullBinaryMemcacheRequest fullRequest = new DefaultFullBinaryMemcacheRequest(request.getKey(),
+ request.getExtras(), content);
+
+ fullRequest.setMagic(request.getMagic());
+ fullRequest.setOpcode(request.getOpcode());
+ fullRequest.setKeyLength(request.getKeyLength());
+ fullRequest.setExtrasLength(request.getExtrasLength());
+ fullRequest.setDataType(request.getDataType());
+ fullRequest.setTotalBodyLength(request.getTotalBodyLength());
+ fullRequest.setOpaque(request.getOpaque());
+ fullRequest.setCAS(request.getCAS());
+ fullRequest.setReserved(request.getReserved());
+
+ return fullRequest;
+ }
+
+ private static FullBinaryMemcacheResponse toFullResponse(BinaryMemcacheResponse response, ByteBuf content) {
+ FullBinaryMemcacheResponse fullResponse = new DefaultFullBinaryMemcacheResponse(response.getKey(),
+ response.getExtras(), content);
+
+ fullResponse.setMagic(response.getMagic());
+ fullResponse.setOpcode(response.getOpcode());
+ fullResponse.setKeyLength(response.getKeyLength());
+ fullResponse.setExtrasLength(response.getExtrasLength());
+ fullResponse.setDataType(response.getDataType());
+ fullResponse.setTotalBodyLength(response.getTotalBodyLength());
+ fullResponse.setOpaque(response.getOpaque());
+ fullResponse.setCAS(response.getCAS());
+ fullResponse.setStatus(response.getStatus());
+
+ return fullResponse;
+ }
+
}
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheRequest.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheRequest.java
index d85da21132..1b93cf6b8d 100644
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheRequest.java
+++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheRequest.java
@@ -18,15 +18,21 @@ package io.netty.handler.codec.memcache.binary;
/**
* Represents a full {@link BinaryMemcacheRequest}, which contains the header and optional key and extras.
*/
-public interface BinaryMemcacheRequest extends BinaryMemcacheMessage {
+public interface BinaryMemcacheRequest extends BinaryMemcacheMessage {
/**
- * Returns the {@link BinaryMemcacheRequestHeader} which contains the full required request header.
+ * Returns the reserved field value.
*
- * @return the required request header.
+ * @return the reserved field value.
*/
- @Override
- BinaryMemcacheRequestHeader getHeader();
+ short getReserved();
+
+ /**
+ * Sets the reserved field value.
+ *
+ * @param reserved the reserved field value.
+ */
+ BinaryMemcacheRequest setReserved(short reserved);
@Override
BinaryMemcacheRequest retain();
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheRequestDecoder.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheRequestDecoder.java
index 4bc2041dc1..69bb1708ba 100644
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheRequestDecoder.java
+++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheRequestDecoder.java
@@ -22,7 +22,7 @@ import io.netty.buffer.Unpooled;
* The decoder part which takes care of decoding the request-specific headers.
*/
public class BinaryMemcacheRequestDecoder
- extends AbstractBinaryMemcacheDecoder {
+ extends AbstractBinaryMemcacheDecoder {
public BinaryMemcacheRequestDecoder() {
this(DEFAULT_MAX_CHUNK_SIZE);
@@ -33,8 +33,8 @@ public class BinaryMemcacheRequestDecoder
}
@Override
- protected BinaryMemcacheRequestHeader decodeHeader(ByteBuf in) {
- BinaryMemcacheRequestHeader header = new DefaultBinaryMemcacheRequestHeader();
+ protected BinaryMemcacheRequest decodeHeader(ByteBuf in) {
+ BinaryMemcacheRequest header = new DefaultBinaryMemcacheRequest();
header.setMagic(in.readByte());
header.setOpcode(in.readByte());
header.setKeyLength(in.readShort());
@@ -47,17 +47,8 @@ public class BinaryMemcacheRequestDecoder
return header;
}
- @Override
- protected BinaryMemcacheRequest buildMessage(BinaryMemcacheRequestHeader header, ByteBuf extras, String key) {
- return new DefaultBinaryMemcacheRequest(header, key, extras);
- }
-
@Override
protected BinaryMemcacheRequest buildInvalidMessage() {
- return new DefaultBinaryMemcacheRequest(
- new DefaultBinaryMemcacheRequestHeader(),
- "",
- Unpooled.EMPTY_BUFFER
- );
+ return new DefaultBinaryMemcacheRequest("", Unpooled.EMPTY_BUFFER);
}
}
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheRequestEncoder.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheRequestEncoder.java
index de16f1012e..5051232352 100644
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheRequestEncoder.java
+++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheRequestEncoder.java
@@ -21,19 +21,19 @@ import io.netty.buffer.ByteBuf;
* The encoder part which takes care of encoding the request headers.
*/
public class BinaryMemcacheRequestEncoder
- extends AbstractBinaryMemcacheEncoder {
+ extends AbstractBinaryMemcacheEncoder {
@Override
- protected void encodeHeader(ByteBuf buf, BinaryMemcacheRequestHeader header) {
- buf.writeByte(header.getMagic());
- buf.writeByte(header.getOpcode());
- buf.writeShort(header.getKeyLength());
- buf.writeByte(header.getExtrasLength());
- buf.writeByte(header.getDataType());
- buf.writeShort(header.getReserved());
- buf.writeInt(header.getTotalBodyLength());
- buf.writeInt(header.getOpaque());
- buf.writeLong(header.getCAS());
+ protected void encodeHeader(ByteBuf buf, BinaryMemcacheRequest msg) {
+ buf.writeByte(msg.getMagic());
+ buf.writeByte(msg.getOpcode());
+ buf.writeShort(msg.getKeyLength());
+ buf.writeByte(msg.getExtrasLength());
+ buf.writeByte(msg.getDataType());
+ buf.writeShort(msg.getReserved());
+ buf.writeInt(msg.getTotalBodyLength());
+ buf.writeInt(msg.getOpaque());
+ buf.writeLong(msg.getCAS());
}
}
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheRequestHeader.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheRequestHeader.java
deleted file mode 100644
index 8404951781..0000000000
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheRequestHeader.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2013 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.memcache.binary;
-
-/**
- * Extends the common {@link BinaryMemcacheMessageHeader} header fields with hose who can only show up in
- * {@link BinaryMemcacheRequest} messages.
- *
- * Note that while the additional field in the request is called "reserved", it can still be used for a custom
- * memcached implementation. It will not be mirrored back like the
- * {@link BinaryMemcacheRequestHeader#getOpaque()} field, because in the
- * {@link BinaryMemcacheResponseHeader}, the status field is set there instead.
- */
-public interface BinaryMemcacheRequestHeader extends BinaryMemcacheMessageHeader {
-
- /**
- * Returns the reserved field value.
- *
- * @return the reserved field value.
- */
- short getReserved();
-
- /**
- * Sets the reserved field value.
- *
- * @param reserved the reserved field value.
- */
- BinaryMemcacheRequestHeader setReserved(short reserved);
-
-}
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheResponse.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheResponse.java
index 768caa6262..6d92f68abc 100644
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheResponse.java
+++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheResponse.java
@@ -18,15 +18,21 @@ package io.netty.handler.codec.memcache.binary;
/**
* Represents a full {@link BinaryMemcacheResponse}, which contains the header and optional key and extras.
*/
-public interface BinaryMemcacheResponse extends BinaryMemcacheMessage {
+public interface BinaryMemcacheResponse extends BinaryMemcacheMessage {
/**
- * Returns the {@link BinaryMemcacheResponseHeader} which contains the full required response header.
+ * Returns the status of the response.
*
- * @return the required response header.
+ * @return the status of the response.
*/
- @Override
- BinaryMemcacheResponseHeader getHeader();
+ short getStatus();
+
+ /**
+ * Sets the status of the response.
+ *
+ * @param status the status to set.
+ */
+ BinaryMemcacheResponse setStatus(short status);
@Override
BinaryMemcacheResponse retain();
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheResponseDecoder.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheResponseDecoder.java
index 44ccfcb0f6..0c087ff960 100644
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheResponseDecoder.java
+++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheResponseDecoder.java
@@ -22,7 +22,7 @@ import io.netty.buffer.Unpooled;
* The decoder which takes care of decoding the response headers.
*/
public class BinaryMemcacheResponseDecoder
- extends AbstractBinaryMemcacheDecoder {
+ extends AbstractBinaryMemcacheDecoder {
public BinaryMemcacheResponseDecoder() {
this(DEFAULT_MAX_CHUNK_SIZE);
@@ -33,8 +33,8 @@ public class BinaryMemcacheResponseDecoder
}
@Override
- protected BinaryMemcacheResponseHeader decodeHeader(ByteBuf in) {
- BinaryMemcacheResponseHeader header = new DefaultBinaryMemcacheResponseHeader();
+ protected BinaryMemcacheResponse decodeHeader(ByteBuf in) {
+ BinaryMemcacheResponse header = new DefaultBinaryMemcacheResponse();
header.setMagic(in.readByte());
header.setOpcode(in.readByte());
header.setKeyLength(in.readShort());
@@ -47,17 +47,8 @@ public class BinaryMemcacheResponseDecoder
return header;
}
- @Override
- protected BinaryMemcacheResponse buildMessage(BinaryMemcacheResponseHeader header, ByteBuf extras, String key) {
- return new DefaultBinaryMemcacheResponse(header, key, extras);
- }
-
@Override
protected BinaryMemcacheResponse buildInvalidMessage() {
- return new DefaultBinaryMemcacheResponse(
- new DefaultBinaryMemcacheResponseHeader(),
- "",
- Unpooled.EMPTY_BUFFER
- );
+ return new DefaultBinaryMemcacheResponse("", Unpooled.EMPTY_BUFFER);
}
}
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheResponseEncoder.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheResponseEncoder.java
index 9f92182a4e..880dab6b8d 100644
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheResponseEncoder.java
+++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheResponseEncoder.java
@@ -21,19 +21,19 @@ import io.netty.buffer.ByteBuf;
* The encoder which takes care of encoding the response headers.
*/
public class BinaryMemcacheResponseEncoder
- extends AbstractBinaryMemcacheEncoder {
+ extends AbstractBinaryMemcacheEncoder {
@Override
- protected void encodeHeader(ByteBuf buf, BinaryMemcacheResponseHeader header) {
- buf.writeByte(header.getMagic());
- buf.writeByte(header.getOpcode());
- buf.writeShort(header.getKeyLength());
- buf.writeByte(header.getExtrasLength());
- buf.writeByte(header.getDataType());
- buf.writeShort(header.getStatus());
- buf.writeInt(header.getTotalBodyLength());
- buf.writeInt(header.getOpaque());
- buf.writeLong(header.getCAS());
+ protected void encodeHeader(ByteBuf buf, BinaryMemcacheResponse msg) {
+ buf.writeByte(msg.getMagic());
+ buf.writeByte(msg.getOpcode());
+ buf.writeShort(msg.getKeyLength());
+ buf.writeByte(msg.getExtrasLength());
+ buf.writeByte(msg.getDataType());
+ buf.writeShort(msg.getStatus());
+ buf.writeInt(msg.getTotalBodyLength());
+ buf.writeInt(msg.getOpaque());
+ buf.writeLong(msg.getCAS());
}
}
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheResponseHeader.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheResponseHeader.java
deleted file mode 100644
index bea0218f95..0000000000
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheResponseHeader.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2013 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.memcache.binary;
-
-/**
- * Extends the common {@link BinaryMemcacheMessageHeader} header fields with hose who can only show up in
- * {@link BinaryMemcacheResponse} messages.
- *
- * @see BinaryMemcacheResponseStatus
- */
-public interface BinaryMemcacheResponseHeader extends BinaryMemcacheMessageHeader {
-
- /**
- * Returns the status of the response.
- *
- * @return the status of the response.
- */
- short getStatus();
-
- /**
- * Sets the status of the response.
- *
- * @param status the status to set.
- */
- BinaryMemcacheResponseHeader setStatus(short status);
-
-}
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultBinaryMemcacheRequest.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultBinaryMemcacheRequest.java
index 356861beef..ea7480142c 100644
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultBinaryMemcacheRequest.java
+++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultBinaryMemcacheRequest.java
@@ -20,47 +20,60 @@ import io.netty.buffer.ByteBuf;
/**
* The default implementation of the {@link BinaryMemcacheRequest}.
*/
-public class DefaultBinaryMemcacheRequest extends AbstractBinaryMemcacheMessage
- implements BinaryMemcacheRequest {
+public class DefaultBinaryMemcacheRequest extends AbstractBinaryMemcacheMessage implements BinaryMemcacheRequest {
+
+ /**
+ * Default magic byte for a request.
+ */
+ public static final byte REQUEST_MAGIC_BYTE = (byte) 0x80;
+
+ private short reserved;
/**
* Create a new {@link DefaultBinaryMemcacheRequest} with the header only.
- *
- * @param header the header to use.
*/
- public DefaultBinaryMemcacheRequest(BinaryMemcacheRequestHeader header) {
- this(header, null, null);
+ public DefaultBinaryMemcacheRequest() {
+ this(null, null);
}
/**
* Create a new {@link DefaultBinaryMemcacheRequest} with the header and key.
*
- * @param header the header to use.
* @param key the key to use.
*/
- public DefaultBinaryMemcacheRequest(BinaryMemcacheRequestHeader header, String key) {
- this(header, key, null);
+ public DefaultBinaryMemcacheRequest(String key) {
+ this(key, null);
}
/**
* Create a new {@link DefaultBinaryMemcacheRequest} with the header and extras.
*
- * @param header the header to use.
* @param extras the extras to use.
*/
- public DefaultBinaryMemcacheRequest(BinaryMemcacheRequestHeader header, ByteBuf extras) {
- this(header, null, extras);
+ public DefaultBinaryMemcacheRequest(ByteBuf extras) {
+ this(null, extras);
}
/**
* Create a new {@link DefaultBinaryMemcacheRequest} with the header only.
*
- * @param header the header to use.
* @param key the key to use.
* @param extras the extras to use.
*/
- public DefaultBinaryMemcacheRequest(BinaryMemcacheRequestHeader header, String key, ByteBuf extras) {
- super(header, key, extras);
+ public DefaultBinaryMemcacheRequest(String key, ByteBuf extras) {
+ super(key, extras);
+ setMagic(REQUEST_MAGIC_BYTE);
+ }
+
+ @Override
+ public short getReserved() {
+ return reserved;
+ }
+
+ @Override
+ public BinaryMemcacheRequest setReserved(short reserved) {
+ this.reserved = reserved;
+ return this;
}
@Override
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultBinaryMemcacheRequestHeader.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultBinaryMemcacheRequestHeader.java
deleted file mode 100644
index 484c0270c0..0000000000
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultBinaryMemcacheRequestHeader.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright 2013 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.memcache.binary;
-
-/**
- * The default implementation of a {@link BinaryMemcacheRequestHeader}.
- */
-public class DefaultBinaryMemcacheRequestHeader extends AbstractBinaryMemcacheMessageHeader
- implements BinaryMemcacheRequestHeader {
-
- /**
- * Default magic byte for a request.
- */
- public static final byte REQUEST_MAGIC_BYTE = (byte) 0x80;
-
- private short reserved;
-
- /**
- * Create a new {@link BinaryMemcacheRequestHeader} and apply default values.
- */
- public DefaultBinaryMemcacheRequestHeader() {
- setMagic(REQUEST_MAGIC_BYTE);
- }
-
- @Override
- public short getReserved() {
- return reserved;
- }
-
- @Override
- public BinaryMemcacheRequestHeader setReserved(short reserved) {
- this.reserved = reserved;
- return this;
- }
-}
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultBinaryMemcacheResponse.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultBinaryMemcacheResponse.java
index 92a95e520b..c1e67e39ca 100644
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultBinaryMemcacheResponse.java
+++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultBinaryMemcacheResponse.java
@@ -20,47 +20,60 @@ import io.netty.buffer.ByteBuf;
/**
* The default implementation of the {@link BinaryMemcacheResponse}.
*/
-public class DefaultBinaryMemcacheResponse extends AbstractBinaryMemcacheMessage
- implements BinaryMemcacheResponse {
+public class DefaultBinaryMemcacheResponse extends AbstractBinaryMemcacheMessage implements BinaryMemcacheResponse {
+
+ /**
+ * Default magic byte for a request.
+ */
+ public static final byte RESPONSE_MAGIC_BYTE = (byte) 0x81;
+
+ private short status;
/**
* Create a new {@link DefaultBinaryMemcacheResponse} with the header only.
- *
- * @param header the header to use.
*/
- public DefaultBinaryMemcacheResponse(BinaryMemcacheResponseHeader header) {
- this(header, null, null);
+ public DefaultBinaryMemcacheResponse() {
+ this(null, null);
}
/**
* Create a new {@link DefaultBinaryMemcacheResponse} with the header and key.
*
- * @param header the header to use.
* @param key the key to use
*/
- public DefaultBinaryMemcacheResponse(BinaryMemcacheResponseHeader header, String key) {
- this(header, key, null);
+ public DefaultBinaryMemcacheResponse(String key) {
+ this(key, null);
}
/**
* Create a new {@link DefaultBinaryMemcacheResponse} with the header and extras.
*
- * @param header the header to use.
* @param extras the extras to use.
*/
- public DefaultBinaryMemcacheResponse(BinaryMemcacheResponseHeader header, ByteBuf extras) {
- this(header, null, extras);
+ public DefaultBinaryMemcacheResponse(ByteBuf extras) {
+ this(null, extras);
}
/**
* Create a new {@link DefaultBinaryMemcacheResponse} with the header, key and extras.
*
- * @param header the header to use.
* @param key the key to use.
* @param extras the extras to use.
*/
- public DefaultBinaryMemcacheResponse(BinaryMemcacheResponseHeader header, String key, ByteBuf extras) {
- super(header, key, extras);
+ public DefaultBinaryMemcacheResponse(String key, ByteBuf extras) {
+ super(key, extras);
+ setMagic(RESPONSE_MAGIC_BYTE);
+ }
+
+ @Override
+ public short getStatus() {
+ return status;
+ }
+
+ @Override
+ public BinaryMemcacheResponse setStatus(short status) {
+ this.status = status;
+ return this;
}
@Override
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultBinaryMemcacheResponseHeader.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultBinaryMemcacheResponseHeader.java
deleted file mode 100644
index 71f39b75f7..0000000000
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultBinaryMemcacheResponseHeader.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright 2013 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.memcache.binary;
-
-/**
- * The default implementation of a {@link BinaryMemcacheResponseHeader}.
- */
-public class DefaultBinaryMemcacheResponseHeader extends AbstractBinaryMemcacheMessageHeader
- implements BinaryMemcacheResponseHeader {
-
- /**
- * Default magic byte for a request.
- */
- public static final byte RESPONSE_MAGIC_BYTE = (byte) 0x81;
-
- private short status;
-
- /**
- * Create a new {@link BinaryMemcacheRequestHeader} and apply default values.
- */
- public DefaultBinaryMemcacheResponseHeader() {
- setMagic(RESPONSE_MAGIC_BYTE);
- }
-
- @Override
- public short getStatus() {
- return status;
- }
-
- @Override
- public BinaryMemcacheResponseHeader setStatus(short status) {
- this.status = status;
- return this;
- }
-}
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultFullBinaryMemcacheRequest.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultFullBinaryMemcacheRequest.java
index 98a4a7f96f..04f46c55b2 100644
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultFullBinaryMemcacheRequest.java
+++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultFullBinaryMemcacheRequest.java
@@ -29,25 +29,23 @@ public class DefaultFullBinaryMemcacheRequest extends DefaultBinaryMemcacheReque
/**
* Create a new {@link DefaultBinaryMemcacheRequest} with the header, key and extras.
*
- * @param header the header to use.
* @param key the key to use.
* @param extras the extras to use.
*/
- public DefaultFullBinaryMemcacheRequest(BinaryMemcacheRequestHeader header, String key, ByteBuf extras) {
- this(header, key, extras, Unpooled.buffer(0));
+ public DefaultFullBinaryMemcacheRequest(String key, ByteBuf extras) {
+ this(key, extras, Unpooled.buffer(0));
}
/**
* Create a new {@link DefaultBinaryMemcacheRequest} with the header, key, extras and content.
*
- * @param header the header to use.
* @param key the key to use.
* @param extras the extras to use.
* @param content the content of the full request.
*/
- public DefaultFullBinaryMemcacheRequest(BinaryMemcacheRequestHeader header, String key, ByteBuf extras,
+ public DefaultFullBinaryMemcacheRequest(String key, ByteBuf extras,
ByteBuf content) {
- super(header, key, extras);
+ super(key, extras);
if (content == null) {
throw new NullPointerException("Supplied content is null.");
}
@@ -101,11 +99,11 @@ public class DefaultFullBinaryMemcacheRequest extends DefaultBinaryMemcacheReque
@Override
public FullBinaryMemcacheRequest copy() {
- return new DefaultFullBinaryMemcacheRequest(getHeader(), getKey(), getExtras(), content().copy());
+ return new DefaultFullBinaryMemcacheRequest(getKey(), getExtras(), content().copy());
}
@Override
public FullBinaryMemcacheRequest duplicate() {
- return new DefaultFullBinaryMemcacheRequest(getHeader(), getKey(), getExtras(), content().duplicate());
+ return new DefaultFullBinaryMemcacheRequest(getKey(), getExtras(), content().duplicate());
}
}
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultFullBinaryMemcacheResponse.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultFullBinaryMemcacheResponse.java
index f93e2a65ef..87a3f4a45f 100644
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultFullBinaryMemcacheResponse.java
+++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/DefaultFullBinaryMemcacheResponse.java
@@ -29,25 +29,23 @@ public class DefaultFullBinaryMemcacheResponse extends DefaultBinaryMemcacheResp
/**
* Create a new {@link DefaultFullBinaryMemcacheResponse} with the header, key and extras.
*
- * @param header the header to use.
* @param key the key to use.
* @param extras the extras to use.
*/
- public DefaultFullBinaryMemcacheResponse(BinaryMemcacheResponseHeader header, String key, ByteBuf extras) {
- this(header, key, extras, Unpooled.buffer(0));
+ public DefaultFullBinaryMemcacheResponse(String key, ByteBuf extras) {
+ this(key, extras, Unpooled.buffer(0));
}
/**
* Create a new {@link DefaultFullBinaryMemcacheResponse} with the header, key, extras and content.
*
- * @param header the header to use.
* @param key the key to use.
* @param extras the extras to use.
* @param content the content of the full request.
*/
- public DefaultFullBinaryMemcacheResponse(BinaryMemcacheResponseHeader header, String key, ByteBuf extras,
- ByteBuf content) {
- super(header, key, extras);
+ public DefaultFullBinaryMemcacheResponse(String key, ByteBuf extras,
+ ByteBuf content) {
+ super(key, extras);
if (content == null) {
throw new NullPointerException("Supplied content is null.");
}
@@ -101,11 +99,11 @@ public class DefaultFullBinaryMemcacheResponse extends DefaultBinaryMemcacheResp
@Override
public FullBinaryMemcacheResponse copy() {
- return new DefaultFullBinaryMemcacheResponse(getHeader(), getKey(), getExtras(), content().copy());
+ return new DefaultFullBinaryMemcacheResponse(getKey(), getExtras(), content().copy());
}
@Override
public FullBinaryMemcacheResponse duplicate() {
- return new DefaultFullBinaryMemcacheResponse(getHeader(), getKey(), getExtras(), content().duplicate());
+ return new DefaultFullBinaryMemcacheResponse(getKey(), getExtras(), content().duplicate());
}
}
diff --git a/codec-memcache/src/test/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheDecoderTest.java b/codec-memcache/src/test/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheDecoderTest.java
index 747a171c77..1711f3af4c 100644
--- a/codec-memcache/src/test/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheDecoderTest.java
+++ b/codec-memcache/src/test/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheDecoderTest.java
@@ -90,14 +90,12 @@ public class BinaryMemcacheDecoderTest {
BinaryMemcacheRequest request = channel.readInbound();
assertThat(request, notNullValue());
- assertThat(request.getHeader(), notNullValue());
assertThat(request.getKey(), notNullValue());
assertThat(request.getExtras(), nullValue());
- BinaryMemcacheRequestHeader header = request.getHeader();
- assertThat(header.getKeyLength(), is((short) 3));
- assertThat(header.getExtrasLength(), is((byte) 0));
- assertThat(header.getTotalBodyLength(), is(3));
+ assertThat(request.getKeyLength(), is((short) 3));
+ assertThat(request.getExtrasLength(), is((byte) 0));
+ assertThat(request.getTotalBodyLength(), is(3));
request.release();
assertThat(channel.readInbound(), instanceOf(LastMemcacheContent.class));
@@ -118,14 +116,12 @@ public class BinaryMemcacheDecoderTest {
BinaryMemcacheRequest request = channel.readInbound();
assertThat(request, notNullValue());
- assertThat(request.getHeader(), notNullValue());
assertThat(request.getKey(), notNullValue());
assertThat(request.getExtras(), nullValue());
- BinaryMemcacheRequestHeader header = request.getHeader();
- assertThat(header.getKeyLength(), is((short) 3));
- assertThat(header.getExtrasLength(), is((byte) 0));
- assertThat(header.getTotalBodyLength(), is(11));
+ assertThat(request.getKeyLength(), is((short) 3));
+ assertThat(request.getExtrasLength(), is((byte) 0));
+ assertThat(request.getTotalBodyLength(), is(11));
request.release();
@@ -157,7 +153,6 @@ public class BinaryMemcacheDecoderTest {
BinaryMemcacheRequest request = channel.readInbound();
assertThat(request, notNullValue());
- assertThat(request.getHeader(), notNullValue());
assertThat(request.getKey(), notNullValue());
assertThat(request.getExtras(), nullValue());
@@ -213,8 +208,8 @@ public class BinaryMemcacheDecoderTest {
// First message
BinaryMemcacheResponse response = channel.readInbound();
- assertThat(response.getHeader().getStatus(), is(BinaryMemcacheResponseStatus.KEY_ENOENT));
- assertThat(response.getHeader().getTotalBodyLength(), is(msgBody.length()));
+ assertThat(response.getStatus(), is(BinaryMemcacheResponseStatus.KEY_ENOENT));
+ assertThat(response.getTotalBodyLength(), is(msgBody.length()));
response.release();
// First message first content chunk
@@ -225,8 +220,8 @@ public class BinaryMemcacheDecoderTest {
// Second message
response = channel.readInbound();
- assertThat(response.getHeader().getStatus(), is(BinaryMemcacheResponseStatus.KEY_ENOENT));
- assertThat(response.getHeader().getTotalBodyLength(), is(msgBody.length()));
+ assertThat(response.getStatus(), is(BinaryMemcacheResponseStatus.KEY_ENOENT));
+ assertThat(response.getTotalBodyLength(), is(msgBody.length()));
response.release();
// Second message first content chunk
@@ -243,8 +238,8 @@ public class BinaryMemcacheDecoderTest {
// Third message
response = channel.readInbound();
- assertThat(response.getHeader().getStatus(), is(BinaryMemcacheResponseStatus.KEY_ENOENT));
- assertThat(response.getHeader().getTotalBodyLength(), is(msgBody.length()));
+ assertThat(response.getStatus(), is(BinaryMemcacheResponseStatus.KEY_ENOENT));
+ assertThat(response.getTotalBodyLength(), is(msgBody.length()));
response.release();
// Third message first content chunk
diff --git a/codec-memcache/src/test/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheEncoderTest.java b/codec-memcache/src/test/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheEncoderTest.java
index 2bc9a54f00..cb255f6943 100644
--- a/codec-memcache/src/test/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheEncoderTest.java
+++ b/codec-memcache/src/test/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheEncoderTest.java
@@ -51,8 +51,7 @@ public class BinaryMemcacheEncoderTest {
@Test
public void shouldEncodeDefaultHeader() {
- BinaryMemcacheRequestHeader header = new DefaultBinaryMemcacheRequestHeader();
- BinaryMemcacheRequest request = new DefaultBinaryMemcacheRequest(header);
+ BinaryMemcacheRequest request = new DefaultBinaryMemcacheRequest();
boolean result = channel.writeOutbound(request);
assertThat(result, is(true));
@@ -66,10 +65,9 @@ public class BinaryMemcacheEncoderTest {
@Test
public void shouldEncodeCustomHeader() {
- BinaryMemcacheRequestHeader header = new DefaultBinaryMemcacheRequestHeader();
- header.setMagic((byte) 0xAA);
- header.setOpcode(BinaryMemcacheOpcodes.GET);
- BinaryMemcacheRequest request = new DefaultBinaryMemcacheRequest(header);
+ BinaryMemcacheRequest request = new DefaultBinaryMemcacheRequest();
+ request.setMagic((byte) 0xAA);
+ request.setOpcode(BinaryMemcacheOpcodes.GET);
boolean result = channel.writeOutbound(request);
assertThat(result, is(true));
@@ -86,9 +84,9 @@ public class BinaryMemcacheEncoderTest {
String extrasContent = "netty<3memcache";
ByteBuf extras = Unpooled.copiedBuffer(extrasContent, CharsetUtil.UTF_8);
int extrasLength = extras.readableBytes();
- BinaryMemcacheRequestHeader header = new DefaultBinaryMemcacheRequestHeader();
- header.setExtrasLength((byte) extrasLength);
- BinaryMemcacheRequest request = new DefaultBinaryMemcacheRequest(header, extras);
+
+ BinaryMemcacheRequest request = new DefaultBinaryMemcacheRequest(extras);
+ request.setExtrasLength((byte) extrasLength);
boolean result = channel.writeOutbound(request);
assertThat(result, is(true));
@@ -104,9 +102,9 @@ public class BinaryMemcacheEncoderTest {
public void shouldEncodeKey() {
String key = "netty";
int keyLength = key.length();
- BinaryMemcacheRequestHeader header = new DefaultBinaryMemcacheRequestHeader();
- header.setKeyLength((byte) keyLength);
- BinaryMemcacheRequest request = new DefaultBinaryMemcacheRequest(header, key);
+
+ BinaryMemcacheRequest request = new DefaultBinaryMemcacheRequest(key);
+ request.setKeyLength((byte) keyLength);
boolean result = channel.writeOutbound(request);
assertThat(result, is(true));
@@ -126,9 +124,8 @@ public class BinaryMemcacheEncoderTest {
new DefaultLastMemcacheContent(Unpooled.copiedBuffer(" Rocks!", CharsetUtil.UTF_8));
int totalBodyLength = content1.content().readableBytes() + content2.content().readableBytes();
- BinaryMemcacheRequestHeader header = new DefaultBinaryMemcacheRequestHeader();
- header.setTotalBodyLength(totalBodyLength);
- BinaryMemcacheRequest request = new DefaultBinaryMemcacheRequest(header);
+ BinaryMemcacheRequest request = new DefaultBinaryMemcacheRequest();
+ request.setTotalBodyLength(totalBodyLength);
boolean result = channel.writeOutbound(request);
assertThat(result, is(true));
@@ -159,6 +156,6 @@ public class BinaryMemcacheEncoderTest {
@Test(expected = EncoderException.class)
public void shouldFailWithoutLastContent() {
channel.writeOutbound(new DefaultMemcacheContent(Unpooled.EMPTY_BUFFER));
- channel.writeOutbound(new DefaultBinaryMemcacheRequest(new DefaultBinaryMemcacheRequestHeader()));
+ channel.writeOutbound(new DefaultBinaryMemcacheRequest());
}
}
diff --git a/codec-memcache/src/test/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheObjectAggregatorTest.java b/codec-memcache/src/test/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheObjectAggregatorTest.java
index 77d77d09d4..37f679e8b8 100644
--- a/codec-memcache/src/test/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheObjectAggregatorTest.java
+++ b/codec-memcache/src/test/java/io/netty/handler/codec/memcache/binary/BinaryMemcacheObjectAggregatorTest.java
@@ -61,7 +61,6 @@ public class BinaryMemcacheObjectAggregatorTest {
assertThat(request, instanceOf(FullBinaryMemcacheRequest.class));
assertThat(request, notNullValue());
- assertThat(request.getHeader(), notNullValue());
assertThat(request.getKey(), notNullValue());
assertThat(request.getExtras(), nullValue());