}
@Override
protected BinaryMemcacheRequest encodeRequest(final ChannelHandlerContext ctx, final BinaryRequest msg)
throws Exception {
BinaryMemcacheRequest request;
if (msg instanceof GetRequest) {
request = handleGetRequest(ctx, (GetRequest) msg);
} else if (msg instanceof BinaryStoreRequest) {
request = handleStoreRequest(ctx, (BinaryStoreRequest) msg);
} else if (msg instanceof ReplicaGetRequest) {
request = handleReplicaGetRequest((ReplicaGetRequest) msg);
} else if (msg instanceof RemoveRequest) {
request = handleRemoveRequest((RemoveRequest) msg);
} else if (msg instanceof CounterRequest) {
request = handleCounterRequest(ctx, (CounterRequest) msg);
} else if (msg instanceof TouchRequest) {
request = handleTouchRequest(ctx, (TouchRequest) msg);
} else if (msg instanceof UnlockRequest) {
request = handleUnlockRequest((UnlockRequest) msg);
} else if (msg instanceof ObserveRequest) {
request = handleObserveRequest(ctx, (ObserveRequest) msg);
} else if (msg instanceof GetBucketConfigRequest) {
request = handleGetBucketConfigRequest();
} else if (msg instanceof AppendRequest) {
request = handleAppendRequest((AppendRequest) msg);
} else if (msg instanceof PrependRequest) {
request = handlePrependRequest((PrependRequest) msg);
} else {
throw new IllegalArgumentException("Unknown incoming BinaryRequest type "
+ msg.getClass());
}
if (msg.partition() >= 0) {
request.setReserved(msg.partition());
}
return request;
}