Replace 'Stream' with 'Byte'
- In computing, 'stream' means both byte stream and message stream, which is confusing. - Also, we were already mixing stream and byte in some places and it's better use the terms consistently. (e.g. inboundByteBuffer & inbound stream)
This commit is contained in:
parent
24e1f936a8
commit
e376888d48
@ -15,7 +15,7 @@
|
||||
*/
|
||||
package io.netty.handler.codec.http;
|
||||
|
||||
import io.netty.channel.embedded.EmbeddedStreamChannel;
|
||||
import io.netty.channel.embedded.EmbeddedByteChannel;
|
||||
import io.netty.handler.codec.compression.ZlibEncoder;
|
||||
import io.netty.handler.codec.compression.ZlibWrapper;
|
||||
|
||||
@ -118,7 +118,7 @@ public class HttpContentCompressor extends HttpContentEncoder {
|
||||
|
||||
return new Result(
|
||||
targetContentEncoding,
|
||||
new EmbeddedStreamChannel(
|
||||
new EmbeddedByteChannel(
|
||||
new ZlibEncoder(wrapper, compressionLevel, windowBits, memLevel)));
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@ package io.netty.handler.codec.http;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.buffer.ChannelBuffers;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.embedded.EmbeddedStreamChannel;
|
||||
import io.netty.channel.embedded.EmbeddedByteChannel;
|
||||
import io.netty.handler.codec.MessageToMessageDecoder;
|
||||
|
||||
/**
|
||||
@ -42,7 +42,7 @@ import io.netty.handler.codec.MessageToMessageDecoder;
|
||||
*/
|
||||
public abstract class HttpContentDecoder extends MessageToMessageDecoder<Object, Object> {
|
||||
|
||||
private EmbeddedStreamChannel decoder;
|
||||
private EmbeddedByteChannel decoder;
|
||||
|
||||
/**
|
||||
* Creates a new instance.
|
||||
@ -137,7 +137,7 @@ public abstract class HttpContentDecoder extends MessageToMessageDecoder<Object,
|
||||
* {@code null} otherwise (alternatively, you can throw an exception
|
||||
* to block unknown encoding).
|
||||
*/
|
||||
protected abstract EmbeddedStreamChannel newContentDecoder(String contentEncoding) throws Exception;
|
||||
protected abstract EmbeddedByteChannel newContentDecoder(String contentEncoding) throws Exception;
|
||||
|
||||
/**
|
||||
* Returns the expected content encoding of the decoded content.
|
||||
|
@ -15,7 +15,7 @@
|
||||
*/
|
||||
package io.netty.handler.codec.http;
|
||||
|
||||
import io.netty.channel.embedded.EmbeddedStreamChannel;
|
||||
import io.netty.channel.embedded.EmbeddedByteChannel;
|
||||
import io.netty.handler.codec.compression.ZlibDecoder;
|
||||
import io.netty.handler.codec.compression.ZlibWrapper;
|
||||
|
||||
@ -26,12 +26,12 @@ import io.netty.handler.codec.compression.ZlibWrapper;
|
||||
*/
|
||||
public class HttpContentDecompressor extends HttpContentDecoder {
|
||||
@Override
|
||||
protected EmbeddedStreamChannel newContentDecoder(String contentEncoding) throws Exception {
|
||||
protected EmbeddedByteChannel newContentDecoder(String contentEncoding) throws Exception {
|
||||
if ("gzip".equalsIgnoreCase(contentEncoding) || "x-gzip".equalsIgnoreCase(contentEncoding)) {
|
||||
return new EmbeddedStreamChannel(new ZlibDecoder(ZlibWrapper.GZIP));
|
||||
return new EmbeddedByteChannel(new ZlibDecoder(ZlibWrapper.GZIP));
|
||||
} else if ("deflate".equalsIgnoreCase(contentEncoding) || "x-deflate".equalsIgnoreCase(contentEncoding)) {
|
||||
// To be strict, 'deflate' means ZLIB, but some servers were not implemented correctly.
|
||||
return new EmbeddedStreamChannel(new ZlibDecoder(ZlibWrapper.ZLIB_OR_NONE));
|
||||
return new EmbeddedByteChannel(new ZlibDecoder(ZlibWrapper.ZLIB_OR_NONE));
|
||||
}
|
||||
|
||||
// 'identity' or unsupported
|
||||
|
@ -18,7 +18,7 @@ package io.netty.handler.codec.http;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.buffer.ChannelBuffers;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.embedded.EmbeddedStreamChannel;
|
||||
import io.netty.channel.embedded.EmbeddedByteChannel;
|
||||
import io.netty.handler.codec.MessageToMessageCodec;
|
||||
import io.netty.util.internal.QueueFactory;
|
||||
|
||||
@ -49,7 +49,7 @@ import java.util.Queue;
|
||||
public abstract class HttpContentEncoder extends MessageToMessageCodec<HttpMessage, HttpMessage, Object, Object> {
|
||||
|
||||
private final Queue<String> acceptEncodingQueue = QueueFactory.createQueue();
|
||||
private EmbeddedStreamChannel encoder;
|
||||
private EmbeddedByteChannel encoder;
|
||||
|
||||
/**
|
||||
* Creates a new instance.
|
||||
@ -200,9 +200,9 @@ public abstract class HttpContentEncoder extends MessageToMessageCodec<HttpMessa
|
||||
|
||||
public static final class Result {
|
||||
private final String targetContentEncoding;
|
||||
private final EmbeddedStreamChannel contentEncoder;
|
||||
private final EmbeddedByteChannel contentEncoder;
|
||||
|
||||
public Result(String targetContentEncoding, EmbeddedStreamChannel contentEncoder) {
|
||||
public Result(String targetContentEncoding, EmbeddedByteChannel contentEncoder) {
|
||||
if (targetContentEncoding == null) {
|
||||
throw new NullPointerException("targetContentEncoding");
|
||||
}
|
||||
@ -218,7 +218,7 @@ public abstract class HttpContentEncoder extends MessageToMessageCodec<HttpMessa
|
||||
return targetContentEncoding;
|
||||
}
|
||||
|
||||
public EmbeddedStreamChannel getContentEncoder() {
|
||||
public EmbeddedByteChannel getContentEncoder() {
|
||||
return contentEncoder;
|
||||
}
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ import static io.netty.buffer.ChannelBuffers.*;
|
||||
import static io.netty.handler.codec.http.HttpConstants.*;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToStreamEncoder;
|
||||
import io.netty.handler.codec.MessageToByteEncoder;
|
||||
import io.netty.handler.codec.UnsupportedMessageTypeException;
|
||||
import io.netty.handler.codec.http.HttpHeaders.Names;
|
||||
import io.netty.handler.codec.http.HttpHeaders.Values;
|
||||
@ -42,7 +42,7 @@ import java.util.Map;
|
||||
* implement all abstract methods properly.
|
||||
* @apiviz.landmark
|
||||
*/
|
||||
public abstract class HttpMessageEncoder extends MessageToStreamEncoder<Object> {
|
||||
public abstract class HttpMessageEncoder extends MessageToByteEncoder<Object> {
|
||||
|
||||
private static final ChannelBuffer LAST_CHUNK =
|
||||
copiedBuffer("0\r\n\r\n", CharsetUtil.US_ASCII);
|
||||
|
@ -18,7 +18,7 @@ package io.netty.handler.codec.http.websocketx;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.ChannelHandler.Sharable;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToStreamEncoder;
|
||||
import io.netty.handler.codec.MessageToByteEncoder;
|
||||
|
||||
/**
|
||||
* Encodes a {@link WebSocketFrame} into a {@link ChannelBuffer}.
|
||||
@ -30,7 +30,7 @@ import io.netty.handler.codec.MessageToStreamEncoder;
|
||||
* @apiviz.uses io.netty.handler.codec.http.websocket.WebSocketFrame
|
||||
*/
|
||||
@Sharable
|
||||
public class WebSocket00FrameEncoder extends MessageToStreamEncoder<WebSocketFrame> {
|
||||
public class WebSocket00FrameEncoder extends MessageToByteEncoder<WebSocketFrame> {
|
||||
|
||||
@Override
|
||||
public boolean isEncodable(Object msg) throws Exception {
|
||||
|
@ -56,7 +56,7 @@ package io.netty.handler.codec.http.websocketx;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.buffer.ChannelBuffers;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToStreamEncoder;
|
||||
import io.netty.handler.codec.MessageToByteEncoder;
|
||||
import io.netty.handler.codec.TooLongFrameException;
|
||||
import io.netty.logging.InternalLogger;
|
||||
import io.netty.logging.InternalLoggerFactory;
|
||||
@ -69,7 +69,7 @@ import java.nio.ByteBuffer;
|
||||
* href="https://github.com/joewalnes/webbit">webbit</a> and modified.
|
||||
* </p>
|
||||
*/
|
||||
public class WebSocket08FrameEncoder extends MessageToStreamEncoder<WebSocketFrame> {
|
||||
public class WebSocket08FrameEncoder extends MessageToByteEncoder<WebSocketFrame> {
|
||||
|
||||
private static final InternalLogger logger = InternalLoggerFactory.getInstance(WebSocket08FrameEncoder.class);
|
||||
|
||||
|
@ -19,13 +19,13 @@ import static io.netty.handler.codec.spdy.SpdyCodecUtil.*;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.buffer.ChannelBuffers;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.StreamToMessageDecoder;
|
||||
import io.netty.handler.codec.ByteToMessageDecoder;
|
||||
import io.netty.handler.codec.TooLongFrameException;
|
||||
|
||||
/**
|
||||
* Decodes {@link ChannelBuffer}s into SPDY Data and Control Frames.
|
||||
*/
|
||||
public class SpdyFrameDecoder extends StreamToMessageDecoder<Object> {
|
||||
public class SpdyFrameDecoder extends ByteToMessageDecoder<Object> {
|
||||
|
||||
private final int spdyVersion;
|
||||
private final int maxChunkSize;
|
||||
|
@ -21,7 +21,7 @@ import io.netty.buffer.ChannelBuffers;
|
||||
import io.netty.channel.ChannelFuture;
|
||||
import io.netty.channel.ChannelFutureListener;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToStreamEncoder;
|
||||
import io.netty.handler.codec.MessageToByteEncoder;
|
||||
import io.netty.handler.codec.UnsupportedMessageTypeException;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
@ -30,7 +30,7 @@ import java.util.Set;
|
||||
/**
|
||||
* Encodes a SPDY Data or Control Frame into a {@link ChannelBuffer}.
|
||||
*/
|
||||
public class SpdyFrameEncoder extends MessageToStreamEncoder<Object> {
|
||||
public class SpdyFrameEncoder extends MessageToByteEncoder<Object> {
|
||||
|
||||
private final int version;
|
||||
private volatile boolean finished;
|
||||
|
@ -17,7 +17,7 @@ package io.netty.handler.codec.http;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import io.netty.buffer.ChannelBuffers;
|
||||
import io.netty.channel.embedded.EmbeddedStreamChannel;
|
||||
import io.netty.channel.embedded.EmbeddedByteChannel;
|
||||
import io.netty.handler.codec.CodecException;
|
||||
import io.netty.handler.codec.PrematureChannelClosureException;
|
||||
import io.netty.util.CharsetUtil;
|
||||
@ -36,7 +36,7 @@ public class HttpClientCodecTest {
|
||||
@Test
|
||||
public void testFailsNotOnRequestResponse() {
|
||||
HttpClientCodec codec = new HttpClientCodec(4096, 8192, 8192, true);
|
||||
EmbeddedStreamChannel ch = new EmbeddedStreamChannel(codec);
|
||||
EmbeddedByteChannel ch = new EmbeddedByteChannel(codec);
|
||||
|
||||
ch.writeOutbound(new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "http://localhost/"));
|
||||
ch.writeInbound(ChannelBuffers.copiedBuffer(RESPONSE, CharsetUtil.ISO_8859_1));
|
||||
@ -46,7 +46,7 @@ public class HttpClientCodecTest {
|
||||
@Test
|
||||
public void testFailsNotOnRequestResponseChunked() {
|
||||
HttpClientCodec codec = new HttpClientCodec(4096, 8192, 8192, true);
|
||||
EmbeddedStreamChannel ch = new EmbeddedStreamChannel(codec);
|
||||
EmbeddedByteChannel ch = new EmbeddedByteChannel(codec);
|
||||
|
||||
ch.writeOutbound(new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "http://localhost/"));
|
||||
ch.writeInbound(ChannelBuffers.copiedBuffer(CHUNKED_RESPONSE, CharsetUtil.ISO_8859_1));
|
||||
@ -56,7 +56,7 @@ public class HttpClientCodecTest {
|
||||
@Test
|
||||
public void testFailsOnMissingResponse() {
|
||||
HttpClientCodec codec = new HttpClientCodec(4096, 8192, 8192, true);
|
||||
EmbeddedStreamChannel ch = new EmbeddedStreamChannel(codec);
|
||||
EmbeddedByteChannel ch = new EmbeddedByteChannel(codec);
|
||||
|
||||
assertTrue(ch.writeOutbound(new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "http://localhost/")));
|
||||
assertNotNull(ch.readOutbound());
|
||||
@ -73,7 +73,7 @@ public class HttpClientCodecTest {
|
||||
@Test
|
||||
public void testFailsOnIncompleteChunkedResponse() {
|
||||
HttpClientCodec codec = new HttpClientCodec(4096, 8192, 8192, true);
|
||||
EmbeddedStreamChannel ch = new EmbeddedStreamChannel(codec);
|
||||
EmbeddedByteChannel ch = new EmbeddedByteChannel(codec);
|
||||
|
||||
ch.writeOutbound(new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "http://localhost/"));
|
||||
ch.writeInbound(ChannelBuffers.copiedBuffer(INCOMPLETE_CHUNKED_RESPONSE, CharsetUtil.ISO_8859_1));
|
||||
|
@ -23,25 +23,25 @@ import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundHandler;
|
||||
import io.netty.channel.ChannelOutboundHandler;
|
||||
|
||||
public abstract class StreamToStreamCodec
|
||||
public abstract class ByteToByteCodec
|
||||
extends ChannelHandlerAdapter
|
||||
implements ChannelInboundHandler<Byte>, ChannelOutboundHandler<Byte> {
|
||||
|
||||
private final StreamToStreamEncoder encoder = new StreamToStreamEncoder() {
|
||||
private final ByteToByteEncoder encoder = new ByteToByteEncoder() {
|
||||
@Override
|
||||
public void encode(
|
||||
ChannelHandlerContext ctx,
|
||||
ChannelBuffer in, ChannelBuffer out) throws Exception {
|
||||
StreamToStreamCodec.this.encode(ctx, in, out);
|
||||
ByteToByteCodec.this.encode(ctx, in, out);
|
||||
}
|
||||
};
|
||||
|
||||
private final StreamToStreamDecoder decoder = new StreamToStreamDecoder() {
|
||||
private final ByteToByteDecoder decoder = new ByteToByteDecoder() {
|
||||
@Override
|
||||
public void decode(
|
||||
ChannelHandlerContext ctx,
|
||||
ChannelBuffer in, ChannelBuffer out) throws Exception {
|
||||
StreamToStreamCodec.this.decode(ctx, in, out);
|
||||
ByteToByteCodec.this.decode(ctx, in, out);
|
||||
}
|
||||
};
|
||||
|
@ -17,9 +17,9 @@ package io.netty.handler.codec;
|
||||
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundStreamHandlerAdapter;
|
||||
import io.netty.channel.ChannelInboundByteHandlerAdapter;
|
||||
|
||||
public abstract class StreamToStreamDecoder extends ChannelInboundStreamHandlerAdapter {
|
||||
public abstract class ByteToByteDecoder extends ChannelInboundByteHandlerAdapter {
|
||||
|
||||
@Override
|
||||
public void inboundBufferUpdated(ChannelHandlerContext ctx) throws Exception {
|
@ -18,9 +18,9 @@ package io.netty.handler.codec;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.ChannelFuture;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelOutboundStreamHandlerAdapter;
|
||||
import io.netty.channel.ChannelOutboundByteHandlerAdapter;
|
||||
|
||||
public abstract class StreamToStreamEncoder extends ChannelOutboundStreamHandlerAdapter {
|
||||
public abstract class ByteToByteEncoder extends ChannelOutboundByteHandlerAdapter {
|
||||
|
||||
@Override
|
||||
public void flush(ChannelHandlerContext ctx, ChannelFuture future) throws Exception {
|
@ -23,26 +23,26 @@ import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundHandler;
|
||||
import io.netty.channel.ChannelOutboundHandler;
|
||||
|
||||
public abstract class StreamToMessageCodec<INBOUND_OUT, OUTBOUND_IN>
|
||||
public abstract class ByteToMessageCodec<INBOUND_OUT, OUTBOUND_IN>
|
||||
extends ChannelHandlerAdapter
|
||||
implements ChannelInboundHandler<Byte>, ChannelOutboundHandler<OUTBOUND_IN> {
|
||||
|
||||
private final MessageToStreamEncoder<OUTBOUND_IN> encoder =
|
||||
new MessageToStreamEncoder<OUTBOUND_IN>() {
|
||||
private final MessageToByteEncoder<OUTBOUND_IN> encoder =
|
||||
new MessageToByteEncoder<OUTBOUND_IN>() {
|
||||
@Override
|
||||
public void encode(
|
||||
ChannelHandlerContext ctx,
|
||||
OUTBOUND_IN msg, ChannelBuffer out) throws Exception {
|
||||
StreamToMessageCodec.this.encode(ctx, msg, out);
|
||||
ByteToMessageCodec.this.encode(ctx, msg, out);
|
||||
}
|
||||
};
|
||||
|
||||
private final StreamToMessageDecoder<INBOUND_OUT> decoder =
|
||||
new StreamToMessageDecoder<INBOUND_OUT>() {
|
||||
private final ByteToMessageDecoder<INBOUND_OUT> decoder =
|
||||
new ByteToMessageDecoder<INBOUND_OUT>() {
|
||||
@Override
|
||||
public INBOUND_OUT decode(
|
||||
ChannelHandlerContext ctx, ChannelBuffer in) throws Exception {
|
||||
return StreamToMessageCodec.this.decode(ctx, in);
|
||||
return ByteToMessageCodec.this.decode(ctx, in);
|
||||
}
|
||||
};
|
||||
|
@ -18,10 +18,10 @@ package io.netty.handler.codec;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundHandler;
|
||||
import io.netty.channel.ChannelInboundStreamHandlerAdapter;
|
||||
import io.netty.channel.ChannelInboundByteHandlerAdapter;
|
||||
import io.netty.channel.ChannelPipeline;
|
||||
|
||||
public abstract class StreamToMessageDecoder<O> extends ChannelInboundStreamHandlerAdapter {
|
||||
public abstract class ByteToMessageDecoder<O> extends ChannelInboundByteHandlerAdapter {
|
||||
|
||||
private ChannelHandlerContext ctx;
|
||||
|
@ -54,7 +54,7 @@ import io.netty.channel.ChannelHandlerContext;
|
||||
* </pre>
|
||||
* @apiviz.uses io.netty.handler.codec.frame.Delimiters - - useful
|
||||
*/
|
||||
public class DelimiterBasedFrameDecoder extends StreamToMessageDecoder<Object> {
|
||||
public class DelimiterBasedFrameDecoder extends ByteToMessageDecoder<Object> {
|
||||
|
||||
private final ChannelBuffer[] delimiters;
|
||||
private final int maxFrameLength;
|
||||
|
@ -37,7 +37,7 @@ import io.netty.channel.ChannelHandlerContext;
|
||||
* +-----+-----+-----+
|
||||
* </pre>
|
||||
*/
|
||||
public class FixedLengthFrameDecoder extends StreamToMessageDecoder<Object> {
|
||||
public class FixedLengthFrameDecoder extends ByteToMessageDecoder<Object> {
|
||||
|
||||
private final int frameLength;
|
||||
private final boolean allocateFullBuffer;
|
||||
|
@ -179,7 +179,7 @@ import io.netty.handler.codec.serialization.ObjectDecoder;
|
||||
* </pre>
|
||||
* @see LengthFieldPrepender
|
||||
*/
|
||||
public class LengthFieldBasedFrameDecoder extends StreamToMessageDecoder<Object> {
|
||||
public class LengthFieldBasedFrameDecoder extends ByteToMessageDecoder<Object> {
|
||||
|
||||
private final int maxFrameLength;
|
||||
private final int lengthFieldOffset;
|
||||
|
@ -51,7 +51,7 @@ import java.nio.ByteOrder;
|
||||
* </pre>
|
||||
*/
|
||||
@Sharable
|
||||
public class LengthFieldPrepender extends MessageToStreamEncoder<ChannelBuffer> {
|
||||
public class LengthFieldPrepender extends MessageToByteEncoder<ChannelBuffer> {
|
||||
|
||||
private final int lengthFieldLength;
|
||||
private final boolean lengthIncludesLengthFieldLength;
|
||||
|
@ -22,7 +22,7 @@ import io.netty.channel.ChannelOutboundMessageHandlerAdapter;
|
||||
|
||||
import java.util.Queue;
|
||||
|
||||
public abstract class MessageToStreamEncoder<I> extends ChannelOutboundMessageHandlerAdapter<I> {
|
||||
public abstract class MessageToByteEncoder<I> extends ChannelOutboundMessageHandlerAdapter<I> {
|
||||
|
||||
@Override
|
||||
public void flush(ChannelHandlerContext ctx, ChannelFuture future) throws Exception {
|
@ -26,7 +26,7 @@ import io.netty.util.Signal;
|
||||
import io.netty.util.VoidEnum;
|
||||
|
||||
/**
|
||||
* A specialized variation of {@link StreamToMessageDecoder} which enables implementation
|
||||
* A specialized variation of {@link ByteToMessageDecoder} which enables implementation
|
||||
* of a non-blocking decoder in the blocking I/O paradigm.
|
||||
* <p>
|
||||
* The biggest difference between {@link ReplayingDecoder} and
|
||||
@ -278,7 +278,7 @@ import io.netty.util.VoidEnum;
|
||||
* @apiviz.landmark
|
||||
* @apiviz.has io.netty.handler.codec.UnreplayableOperationException oneway - - throws
|
||||
*/
|
||||
public abstract class ReplayingDecoder<O, S extends Enum<S>> extends StreamToMessageDecoder<O> {
|
||||
public abstract class ReplayingDecoder<O, S extends Enum<S>> extends ByteToMessageDecoder<O> {
|
||||
|
||||
static final Signal REPLAY = new Signal(ReplayingDecoder.class.getName() + ".REPLAY");
|
||||
|
||||
|
@ -19,15 +19,15 @@ import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.ChannelHandler.Sharable;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelPipeline;
|
||||
import io.netty.handler.codec.ByteToMessageDecoder;
|
||||
import io.netty.handler.codec.DelimiterBasedFrameDecoder;
|
||||
import io.netty.handler.codec.Delimiters;
|
||||
import io.netty.handler.codec.MessageToMessageDecoder;
|
||||
import io.netty.handler.codec.StreamToMessageDecoder;
|
||||
|
||||
/**
|
||||
* Decodes a Base64-encoded {@link ChannelBuffer} or US-ASCII {@link String}
|
||||
* into a {@link ChannelBuffer}. Please note that this decoder must be used
|
||||
* with a proper {@link StreamToMessageDecoder} such as {@link DelimiterBasedFrameDecoder}
|
||||
* with a proper {@link ByteToMessageDecoder} such as {@link DelimiterBasedFrameDecoder}
|
||||
* if you are using a stream-based transport such as TCP/IP. A typical decoder
|
||||
* setup for TCP/IP would be:
|
||||
* <pre>
|
||||
|
@ -17,7 +17,7 @@ package io.netty.handler.codec.compression;
|
||||
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.StreamToStreamDecoder;
|
||||
import io.netty.handler.codec.ByteToByteDecoder;
|
||||
import io.netty.util.internal.jzlib.JZlib;
|
||||
import io.netty.util.internal.jzlib.ZStream;
|
||||
|
||||
@ -27,7 +27,7 @@ import io.netty.util.internal.jzlib.ZStream;
|
||||
* @apiviz.landmark
|
||||
* @apiviz.has io.netty.handler.codec.compression.ZlibWrapper
|
||||
*/
|
||||
public class ZlibDecoder extends StreamToStreamDecoder {
|
||||
public class ZlibDecoder extends ByteToByteDecoder {
|
||||
|
||||
private final ZStream z = new ZStream();
|
||||
private byte[] dictionary;
|
||||
|
@ -20,7 +20,7 @@ import io.netty.buffer.ChannelBuffers;
|
||||
import io.netty.channel.ChannelFuture;
|
||||
import io.netty.channel.ChannelFutureListener;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.StreamToStreamEncoder;
|
||||
import io.netty.handler.codec.ByteToByteEncoder;
|
||||
import io.netty.util.internal.jzlib.JZlib;
|
||||
import io.netty.util.internal.jzlib.ZStream;
|
||||
|
||||
@ -32,7 +32,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
* @apiviz.landmark
|
||||
* @apiviz.has io.netty.handler.codec.compression.ZlibWrapper
|
||||
*/
|
||||
public class ZlibEncoder extends StreamToStreamEncoder {
|
||||
public class ZlibEncoder extends ByteToByteEncoder {
|
||||
|
||||
private static final byte[] EMPTY_ARRAY = new byte[0];
|
||||
|
||||
|
@ -19,12 +19,12 @@ import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelHandler.Sharable;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToStreamEncoder;
|
||||
import io.netty.handler.codec.MessageToByteEncoder;
|
||||
|
||||
import org.jboss.marshalling.Marshaller;
|
||||
|
||||
/**
|
||||
* {@link MessageToStreamEncoder} implementation which uses JBoss Marshalling to marshal
|
||||
* {@link MessageToByteEncoder} implementation which uses JBoss Marshalling to marshal
|
||||
* an Object.
|
||||
*
|
||||
* See <a href="http://www.jboss.org/jbossmarshalling">JBoss Marshalling website</a>
|
||||
@ -34,7 +34,7 @@ import org.jboss.marshalling.Marshaller;
|
||||
*
|
||||
*/
|
||||
@Sharable
|
||||
public class CompatibleMarshallingEncoder extends MessageToStreamEncoder<Object> {
|
||||
public class CompatibleMarshallingEncoder extends MessageToByteEncoder<Object> {
|
||||
|
||||
private final MarshallerProvider provider;
|
||||
|
||||
|
@ -18,12 +18,12 @@ package io.netty.handler.codec.marshalling;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.ChannelHandler.Sharable;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToStreamEncoder;
|
||||
import io.netty.handler.codec.MessageToByteEncoder;
|
||||
|
||||
import org.jboss.marshalling.Marshaller;
|
||||
|
||||
/**
|
||||
* {@link MessageToStreamEncoder} implementation which uses JBoss Marshalling to marshal
|
||||
* {@link MessageToByteEncoder} implementation which uses JBoss Marshalling to marshal
|
||||
* an Object. Be aware that this encoder is not compatible with an other client that just use
|
||||
* JBoss Marshalling as it includes the size of every {@link Object} that gets serialized in
|
||||
* front of the {@link Object} itself.
|
||||
@ -35,7 +35,7 @@ import org.jboss.marshalling.Marshaller;
|
||||
*
|
||||
*/
|
||||
@Sharable
|
||||
public class MarshallingEncoder extends MessageToStreamEncoder<Object> {
|
||||
public class MarshallingEncoder extends MessageToByteEncoder<Object> {
|
||||
|
||||
private static final byte[] LENGTH_PLACEHOLDER = new byte[4];
|
||||
private final MarshallerProvider provider;
|
||||
|
@ -18,7 +18,7 @@ package io.netty.handler.codec.protobuf;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.CorruptedFrameException;
|
||||
import io.netty.handler.codec.StreamToMessageDecoder;
|
||||
import io.netty.handler.codec.ByteToMessageDecoder;
|
||||
|
||||
import com.google.protobuf.CodedInputStream;
|
||||
|
||||
@ -37,7 +37,7 @@ import com.google.protobuf.CodedInputStream;
|
||||
*
|
||||
* @see com.google.protobuf.CodedInputStream
|
||||
*/
|
||||
public class ProtobufVarint32FrameDecoder extends StreamToMessageDecoder<Object> {
|
||||
public class ProtobufVarint32FrameDecoder extends ByteToMessageDecoder<Object> {
|
||||
|
||||
// TODO maxFrameLength + safe skip + fail-fast option
|
||||
// (just like LengthFieldBasedFrameDecoder)
|
||||
|
@ -19,7 +19,7 @@ import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.buffer.ChannelBufferOutputStream;
|
||||
import io.netty.channel.ChannelHandler.Sharable;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToStreamEncoder;
|
||||
import io.netty.handler.codec.MessageToByteEncoder;
|
||||
|
||||
import com.google.protobuf.CodedOutputStream;
|
||||
|
||||
@ -38,7 +38,7 @@ import com.google.protobuf.CodedOutputStream;
|
||||
* @see com.google.protobuf.CodedOutputStream
|
||||
*/
|
||||
@Sharable
|
||||
public class ProtobufVarint32LengthFieldPrepender extends MessageToStreamEncoder<ChannelBuffer> {
|
||||
public class ProtobufVarint32LengthFieldPrepender extends MessageToByteEncoder<ChannelBuffer> {
|
||||
|
||||
/**
|
||||
* Creates a new instance.
|
||||
|
@ -18,7 +18,7 @@ package io.netty.handler.codec.serialization;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.buffer.ChannelBufferOutputStream;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToStreamEncoder;
|
||||
import io.netty.handler.codec.MessageToByteEncoder;
|
||||
import io.netty.util.Attribute;
|
||||
import io.netty.util.AttributeKey;
|
||||
|
||||
@ -34,7 +34,7 @@ import java.io.Serializable;
|
||||
* This encoder is interoperable with the standard Java object streams such as
|
||||
* {@link ObjectInputStream} and {@link ObjectOutputStream}.
|
||||
*/
|
||||
public class CompatibleObjectEncoder extends MessageToStreamEncoder<Object> {
|
||||
public class CompatibleObjectEncoder extends MessageToByteEncoder<Object> {
|
||||
|
||||
private static final AttributeKey<ObjectOutputStream> OOS =
|
||||
new AttributeKey<ObjectOutputStream>(CompatibleObjectEncoder.class.getName() + ".oos");
|
||||
|
@ -19,7 +19,7 @@ import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.buffer.ChannelBufferOutputStream;
|
||||
import io.netty.channel.ChannelHandler.Sharable;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToStreamEncoder;
|
||||
import io.netty.handler.codec.MessageToByteEncoder;
|
||||
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
@ -36,7 +36,7 @@ import java.io.Serializable;
|
||||
* @apiviz.has io.netty.handler.codec.serialization.ObjectEncoderOutputStream - - - compatible with
|
||||
*/
|
||||
@Sharable
|
||||
public class ObjectEncoder extends MessageToStreamEncoder<Object> {
|
||||
public class ObjectEncoder extends MessageToByteEncoder<Object> {
|
||||
private static final byte[] LENGTH_PLACEHOLDER = new byte[4];
|
||||
|
||||
@Override
|
||||
|
@ -20,7 +20,7 @@ import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.buffer.ChannelBufferIndexFinder;
|
||||
import io.netty.buffer.ChannelBuffers;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.embedded.EmbeddedStreamChannel;
|
||||
import io.netty.channel.embedded.EmbeddedByteChannel;
|
||||
import io.netty.util.VoidEnum;
|
||||
|
||||
import org.junit.Test;
|
||||
@ -29,7 +29,7 @@ public class ReplayingDecoderTest {
|
||||
|
||||
@Test
|
||||
public void testLineProtocol() {
|
||||
EmbeddedStreamChannel ch = new EmbeddedStreamChannel(new LineDecoder());
|
||||
EmbeddedByteChannel ch = new EmbeddedByteChannel(new LineDecoder());
|
||||
|
||||
// Ordinary input
|
||||
ch.writeInbound(ChannelBuffers.wrappedBuffer(new byte[] { 'A' }));
|
||||
|
@ -18,7 +18,7 @@ package io.netty.handler.codec.frame;
|
||||
import static org.junit.Assert.*;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.buffer.ChannelBuffers;
|
||||
import io.netty.channel.embedded.EmbeddedStreamChannel;
|
||||
import io.netty.channel.embedded.EmbeddedByteChannel;
|
||||
import io.netty.handler.codec.DecoderException;
|
||||
import io.netty.handler.codec.DelimiterBasedFrameDecoder;
|
||||
import io.netty.handler.codec.Delimiters;
|
||||
@ -32,7 +32,7 @@ public class DelimiterBasedFrameDecoderTest {
|
||||
|
||||
@Test
|
||||
public void testFailSlowTooLongFrameRecovery() throws Exception {
|
||||
EmbeddedStreamChannel ch = new EmbeddedStreamChannel(
|
||||
EmbeddedByteChannel ch = new EmbeddedByteChannel(
|
||||
new DelimiterBasedFrameDecoder(1, true, false, Delimiters.nulDelimiter()));
|
||||
|
||||
for (int i = 0; i < 2; i ++) {
|
||||
@ -52,7 +52,7 @@ public class DelimiterBasedFrameDecoderTest {
|
||||
|
||||
@Test
|
||||
public void testFailFastTooLongFrameRecovery() throws Exception {
|
||||
EmbeddedStreamChannel ch = new EmbeddedStreamChannel(
|
||||
EmbeddedByteChannel ch = new EmbeddedByteChannel(
|
||||
new DelimiterBasedFrameDecoder(1, Delimiters.nulDelimiter()));
|
||||
|
||||
for (int i = 0; i < 2; i ++) {
|
||||
|
@ -18,7 +18,7 @@ package io.netty.handler.codec.frame;
|
||||
import static org.junit.Assert.*;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.buffer.ChannelBuffers;
|
||||
import io.netty.channel.embedded.EmbeddedStreamChannel;
|
||||
import io.netty.channel.embedded.EmbeddedByteChannel;
|
||||
import io.netty.handler.codec.DecoderException;
|
||||
import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
|
||||
import io.netty.handler.codec.TooLongFrameException;
|
||||
@ -30,7 +30,7 @@ import org.junit.Test;
|
||||
public class LengthFieldBasedFrameDecoderTest {
|
||||
@Test
|
||||
public void testFailSlowTooLongFrameRecovery() throws Exception {
|
||||
EmbeddedStreamChannel ch = new EmbeddedStreamChannel(
|
||||
EmbeddedByteChannel ch = new EmbeddedByteChannel(
|
||||
new LengthFieldBasedFrameDecoder(5, 0, 4, 0, 4, false));
|
||||
|
||||
for (int i = 0; i < 2; i ++) {
|
||||
@ -50,7 +50,7 @@ public class LengthFieldBasedFrameDecoderTest {
|
||||
|
||||
@Test
|
||||
public void testFailFastTooLongFrameRecovery() throws Exception {
|
||||
EmbeddedStreamChannel ch = new EmbeddedStreamChannel(
|
||||
EmbeddedByteChannel ch = new EmbeddedByteChannel(
|
||||
new LengthFieldBasedFrameDecoder(5, 0, 4, 0, 4));
|
||||
|
||||
for (int i = 0; i < 2; i ++) {
|
||||
|
@ -19,7 +19,7 @@ import static org.junit.Assert.*;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.buffer.ChannelBuffers;
|
||||
import io.netty.channel.ChannelHandler;
|
||||
import io.netty.channel.embedded.EmbeddedStreamChannel;
|
||||
import io.netty.channel.embedded.EmbeddedByteChannel;
|
||||
import io.netty.handler.codec.CodecException;
|
||||
import io.netty.handler.codec.TooLongFrameException;
|
||||
|
||||
@ -42,7 +42,7 @@ public abstract class AbstractCompatibleMarshallingDecoderTest {
|
||||
MarshallerFactory marshallerFactory = createMarshallerFactory();
|
||||
MarshallingConfiguration configuration = createMarshallingConfig();
|
||||
|
||||
EmbeddedStreamChannel ch = new EmbeddedStreamChannel(createDecoder(Integer.MAX_VALUE));
|
||||
EmbeddedByteChannel ch = new EmbeddedByteChannel(createDecoder(Integer.MAX_VALUE));
|
||||
|
||||
ByteArrayOutputStream bout = new ByteArrayOutputStream();
|
||||
Marshaller marshaller = marshallerFactory.createMarshaller(configuration);
|
||||
@ -72,7 +72,7 @@ public abstract class AbstractCompatibleMarshallingDecoderTest {
|
||||
MarshallerFactory marshallerFactory = createMarshallerFactory();
|
||||
MarshallingConfiguration configuration = createMarshallingConfig();
|
||||
|
||||
EmbeddedStreamChannel ch = new EmbeddedStreamChannel(createDecoder(Integer.MAX_VALUE));
|
||||
EmbeddedByteChannel ch = new EmbeddedByteChannel(createDecoder(Integer.MAX_VALUE));
|
||||
|
||||
ByteArrayOutputStream bout = new ByteArrayOutputStream();
|
||||
Marshaller marshaller = marshallerFactory.createMarshaller(configuration);
|
||||
@ -103,7 +103,7 @@ public abstract class AbstractCompatibleMarshallingDecoderTest {
|
||||
MarshallingConfiguration configuration = createMarshallingConfig();
|
||||
|
||||
ChannelHandler mDecoder = createDecoder(4);
|
||||
EmbeddedStreamChannel ch = new EmbeddedStreamChannel(mDecoder);
|
||||
EmbeddedByteChannel ch = new EmbeddedByteChannel(mDecoder);
|
||||
|
||||
ByteArrayOutputStream bout = new ByteArrayOutputStream();
|
||||
Marshaller marshaller = marshallerFactory.createMarshaller(configuration);
|
||||
|
@ -17,7 +17,7 @@ package io.netty.handler.codec.marshalling;
|
||||
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.ChannelHandler;
|
||||
import io.netty.channel.embedded.EmbeddedStreamChannel;
|
||||
import io.netty.channel.embedded.EmbeddedByteChannel;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@ -38,7 +38,7 @@ public abstract class AbstractCompatibleMarshallingEncoderTest {
|
||||
final MarshallerFactory marshallerFactory = createMarshallerFactory();
|
||||
final MarshallingConfiguration configuration = createMarshallingConfig();
|
||||
|
||||
EmbeddedStreamChannel ch = new EmbeddedStreamChannel(createEncoder());
|
||||
EmbeddedByteChannel ch = new EmbeddedByteChannel(createEncoder());
|
||||
|
||||
ch.writeOutbound(testObject);
|
||||
Assert.assertTrue(ch.finish());
|
||||
|
@ -20,18 +20,18 @@ import static org.hamcrest.core.Is.*;
|
||||
import static org.hamcrest.core.IsNull.*;
|
||||
import static org.junit.Assert.*;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.embedded.EmbeddedStreamChannel;
|
||||
import io.netty.channel.embedded.EmbeddedByteChannel;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
public class ProtobufVarint32FrameDecoderTest {
|
||||
|
||||
private EmbeddedStreamChannel ch;
|
||||
private EmbeddedByteChannel ch;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
ch = new EmbeddedStreamChannel(new ProtobufVarint32FrameDecoder());
|
||||
ch = new EmbeddedByteChannel(new ProtobufVarint32FrameDecoder());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -18,18 +18,18 @@ package io.netty.handler.codec.protobuf;
|
||||
import static io.netty.buffer.ChannelBuffers.*;
|
||||
import static org.hamcrest.core.Is.*;
|
||||
import static org.junit.Assert.*;
|
||||
import io.netty.channel.embedded.EmbeddedStreamChannel;
|
||||
import io.netty.channel.embedded.EmbeddedByteChannel;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
public class ProtobufVarint32LengthFieldPrependerTest {
|
||||
|
||||
private EmbeddedStreamChannel ch;
|
||||
private EmbeddedByteChannel ch;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
ch = new EmbeddedStreamChannel(new ProtobufVarint32LengthFieldPrepender());
|
||||
ch = new EmbeddedByteChannel(new ProtobufVarint32LengthFieldPrepender());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -19,7 +19,7 @@ import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.ChannelFuture;
|
||||
import io.netty.channel.ChannelFutureListener;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundStreamHandlerAdapter;
|
||||
import io.netty.channel.ChannelInboundByteHandlerAdapter;
|
||||
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
@ -27,7 +27,7 @@ import java.util.logging.Logger;
|
||||
/**
|
||||
* Handles a client-side channel.
|
||||
*/
|
||||
public class DiscardClientHandler extends ChannelInboundStreamHandlerAdapter {
|
||||
public class DiscardClientHandler extends ChannelInboundByteHandlerAdapter {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(
|
||||
DiscardClientHandler.class.getName());
|
||||
|
@ -17,7 +17,7 @@ package io.netty.example.discard;
|
||||
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundStreamHandlerAdapter;
|
||||
import io.netty.channel.ChannelInboundByteHandlerAdapter;
|
||||
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
@ -25,7 +25,7 @@ import java.util.logging.Logger;
|
||||
/**
|
||||
* Handles a server-side channel.
|
||||
*/
|
||||
public class DiscardServerHandler extends ChannelInboundStreamHandlerAdapter {
|
||||
public class DiscardServerHandler extends ChannelInboundByteHandlerAdapter {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(
|
||||
DiscardServerHandler.class.getName());
|
||||
|
@ -18,7 +18,7 @@ package io.netty.example.echo;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.buffer.ChannelBuffers;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundStreamHandlerAdapter;
|
||||
import io.netty.channel.ChannelInboundByteHandlerAdapter;
|
||||
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
@ -28,7 +28,7 @@ import java.util.logging.Logger;
|
||||
* traffic between the echo client and server by sending the first message to
|
||||
* the server.
|
||||
*/
|
||||
public class EchoClientHandler extends ChannelInboundStreamHandlerAdapter {
|
||||
public class EchoClientHandler extends ChannelInboundByteHandlerAdapter {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(
|
||||
EchoClientHandler.class.getName());
|
||||
|
@ -18,7 +18,7 @@ package io.netty.example.echo;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.ChannelHandler.Sharable;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundStreamHandlerAdapter;
|
||||
import io.netty.channel.ChannelInboundByteHandlerAdapter;
|
||||
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
@ -27,7 +27,7 @@ import java.util.logging.Logger;
|
||||
* Handler implementation for the echo server.
|
||||
*/
|
||||
@Sharable
|
||||
public class EchoServerHandler extends ChannelInboundStreamHandlerAdapter {
|
||||
public class EchoServerHandler extends ChannelInboundByteHandlerAdapter {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(
|
||||
EchoServerHandler.class.getName());
|
||||
|
@ -18,7 +18,7 @@ package io.netty.example.factorial;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.CorruptedFrameException;
|
||||
import io.netty.handler.codec.StreamToMessageDecoder;
|
||||
import io.netty.handler.codec.ByteToMessageDecoder;
|
||||
|
||||
import java.math.BigInteger;
|
||||
|
||||
@ -28,7 +28,7 @@ import java.math.BigInteger;
|
||||
* {@link BigInteger} instance. For example, { 'F', 0, 0, 0, 1, 42 } will be
|
||||
* decoded into new BigInteger("42").
|
||||
*/
|
||||
public class BigIntegerDecoder extends StreamToMessageDecoder<BigInteger> {
|
||||
public class BigIntegerDecoder extends ByteToMessageDecoder<BigInteger> {
|
||||
|
||||
@Override
|
||||
public BigInteger decode(ChannelHandlerContext ctx, ChannelBuffer in) {
|
||||
|
@ -17,7 +17,7 @@ package io.netty.example.factorial;
|
||||
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToStreamEncoder;
|
||||
import io.netty.handler.codec.MessageToByteEncoder;
|
||||
|
||||
import java.math.BigInteger;
|
||||
|
||||
@ -26,7 +26,7 @@ import java.math.BigInteger;
|
||||
* a magic number ('F' or 0x46) and a 32-bit length prefix. For example, 42
|
||||
* will be encoded to { 'F', 0, 0, 0, 1, 42 }.
|
||||
*/
|
||||
public class NumberEncoder extends MessageToStreamEncoder<Number> {
|
||||
public class NumberEncoder extends MessageToByteEncoder<Number> {
|
||||
|
||||
@Override
|
||||
public void encode(
|
||||
|
@ -17,7 +17,7 @@ package io.netty.example.portunification;
|
||||
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundStreamHandlerAdapter;
|
||||
import io.netty.channel.ChannelInboundByteHandlerAdapter;
|
||||
import io.netty.channel.ChannelPipeline;
|
||||
import io.netty.example.factorial.BigIntegerDecoder;
|
||||
import io.netty.example.factorial.FactorialServerHandler;
|
||||
@ -38,7 +38,7 @@ import javax.net.ssl.SSLEngine;
|
||||
* Manipulates the current pipeline dynamically to switch protocols or enable
|
||||
* SSL or GZIP.
|
||||
*/
|
||||
public class PortUnificationServerHandler extends ChannelInboundStreamHandlerAdapter {
|
||||
public class PortUnificationServerHandler extends ChannelInboundByteHandlerAdapter {
|
||||
|
||||
private final boolean detectSsl;
|
||||
private final boolean detectGzip;
|
||||
|
@ -18,9 +18,9 @@ package io.netty.example.proxy;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundStreamHandlerAdapter;
|
||||
import io.netty.channel.ChannelInboundByteHandlerAdapter;
|
||||
|
||||
public class HexDumpProxyBackendHandler extends ChannelInboundStreamHandlerAdapter {
|
||||
public class HexDumpProxyBackendHandler extends ChannelInboundByteHandlerAdapter {
|
||||
|
||||
private final Channel inboundChannel;
|
||||
|
||||
|
@ -21,10 +21,10 @@ import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelFuture;
|
||||
import io.netty.channel.ChannelFutureListener;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundStreamHandlerAdapter;
|
||||
import io.netty.channel.ChannelInboundByteHandlerAdapter;
|
||||
import io.netty.channel.socket.nio.NioSocketChannel;
|
||||
|
||||
public class HexDumpProxyFrontendHandler extends ChannelInboundStreamHandlerAdapter {
|
||||
public class HexDumpProxyFrontendHandler extends ChannelInboundByteHandlerAdapter {
|
||||
|
||||
private final String remoteHost;
|
||||
private final int remotePort;
|
||||
|
@ -19,7 +19,7 @@ import io.netty.bootstrap.Bootstrap;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.ChannelHandler.Sharable;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundStreamHandlerAdapter;
|
||||
import io.netty.channel.ChannelInboundByteHandlerAdapter;
|
||||
import io.netty.channel.EventLoop;
|
||||
import io.netty.handler.timeout.IdleState;
|
||||
import io.netty.handler.timeout.IdleStateEvent;
|
||||
@ -32,7 +32,7 @@ import java.util.concurrent.TimeUnit;
|
||||
* connection attempt status.
|
||||
*/
|
||||
@Sharable
|
||||
public class UptimeClientHandler extends ChannelInboundStreamHandlerAdapter {
|
||||
public class UptimeClientHandler extends ChannelInboundByteHandlerAdapter {
|
||||
|
||||
private final UptimeClient client;
|
||||
private long startTime = -1;
|
||||
|
@ -23,7 +23,7 @@ import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundHandler;
|
||||
import io.netty.channel.ChannelOutboundHandler;
|
||||
|
||||
public class StreamLoggingHandler
|
||||
public class ByteLoggingHandler
|
||||
extends LoggingHandler
|
||||
implements ChannelInboundHandler<Byte>, ChannelOutboundHandler<Byte> {
|
||||
|
||||
@ -87,27 +87,27 @@ public class StreamLoggingHandler
|
||||
}
|
||||
}
|
||||
|
||||
public StreamLoggingHandler() {
|
||||
public ByteLoggingHandler() {
|
||||
super();
|
||||
}
|
||||
|
||||
public StreamLoggingHandler(Class<?> clazz, LogLevel level) {
|
||||
public ByteLoggingHandler(Class<?> clazz, LogLevel level) {
|
||||
super(clazz, level);
|
||||
}
|
||||
|
||||
public StreamLoggingHandler(Class<?> clazz) {
|
||||
public ByteLoggingHandler(Class<?> clazz) {
|
||||
super(clazz);
|
||||
}
|
||||
|
||||
public StreamLoggingHandler(LogLevel level) {
|
||||
public ByteLoggingHandler(LogLevel level) {
|
||||
super(level);
|
||||
}
|
||||
|
||||
public StreamLoggingHandler(String name, LogLevel level) {
|
||||
public ByteLoggingHandler(String name, LogLevel level) {
|
||||
super(name, level);
|
||||
}
|
||||
|
||||
public StreamLoggingHandler(String name) {
|
||||
public ByteLoggingHandler(String name) {
|
||||
super(name);
|
||||
}
|
||||
@Override
|
@ -22,7 +22,7 @@ import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.buffer.ChannelBuffers;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundStreamHandlerAdapter;
|
||||
import io.netty.channel.ChannelInboundByteHandlerAdapter;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Random;
|
||||
@ -108,7 +108,7 @@ public class SocketEchoTest extends AbstractSocketTest {
|
||||
}
|
||||
}
|
||||
|
||||
private static class EchoHandler extends ChannelInboundStreamHandlerAdapter {
|
||||
private static class EchoHandler extends ChannelInboundByteHandlerAdapter {
|
||||
volatile Channel channel;
|
||||
final AtomicReference<Throwable> exception = new AtomicReference<Throwable>();
|
||||
volatile int counter;
|
||||
|
@ -23,7 +23,7 @@ import io.netty.buffer.ChannelBuffers;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundMessageHandlerAdapter;
|
||||
import io.netty.channel.ChannelInboundStreamHandlerAdapter;
|
||||
import io.netty.channel.ChannelInboundByteHandlerAdapter;
|
||||
import io.netty.channel.ChannelInitializer;
|
||||
import io.netty.channel.socket.SocketChannel;
|
||||
import io.netty.handler.codec.spdy.SpdyConstants;
|
||||
@ -245,7 +245,7 @@ public class SocketSpdyEchoTest extends AbstractSocketTest {
|
||||
}
|
||||
}
|
||||
|
||||
private class SpdyEchoTestClientHandler extends ChannelInboundStreamHandlerAdapter {
|
||||
private class SpdyEchoTestClientHandler extends ChannelInboundByteHandlerAdapter {
|
||||
final AtomicReference<Throwable> exception = new AtomicReference<Throwable>();
|
||||
final ChannelBuffer frames;
|
||||
volatile int counter;
|
||||
|
@ -23,7 +23,7 @@ import io.netty.buffer.ChannelBuffers;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelFuture;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundStreamHandlerAdapter;
|
||||
import io.netty.channel.ChannelInboundByteHandlerAdapter;
|
||||
import io.netty.channel.ChannelInitializer;
|
||||
import io.netty.channel.socket.SocketChannel;
|
||||
import io.netty.handler.ssl.SslHandler;
|
||||
@ -148,7 +148,7 @@ public class SocketSslEchoTest extends AbstractSocketTest {
|
||||
}
|
||||
}
|
||||
|
||||
private class EchoHandler extends ChannelInboundStreamHandlerAdapter {
|
||||
private class EchoHandler extends ChannelInboundByteHandlerAdapter {
|
||||
volatile Channel channel;
|
||||
final AtomicReference<Throwable> exception = new AtomicReference<Throwable>();
|
||||
volatile int counter;
|
||||
|
@ -41,7 +41,7 @@ public final class ChannelBufferHolder<E> {
|
||||
}
|
||||
msgBuf = null;
|
||||
this.byteBuf = byteBuf;
|
||||
type = ChannelBufferType.STREAM;
|
||||
type = ChannelBufferType.BYTE;
|
||||
}
|
||||
|
||||
public ChannelBufferType type() {
|
||||
@ -67,7 +67,7 @@ public final class ChannelBufferHolder<E> {
|
||||
switch (type) {
|
||||
case MESSAGE:
|
||||
return "MessageBuffer(" + msgBuf.size() + ')';
|
||||
case STREAM:
|
||||
case BYTE:
|
||||
return byteBuf.toString();
|
||||
default:
|
||||
throw new Error();
|
||||
@ -78,7 +78,7 @@ public final class ChannelBufferHolder<E> {
|
||||
switch (type) {
|
||||
case MESSAGE:
|
||||
return msgBuf.size();
|
||||
case STREAM:
|
||||
case BYTE:
|
||||
return byteBuf.readableBytes();
|
||||
default:
|
||||
throw new Error();
|
||||
@ -89,7 +89,7 @@ public final class ChannelBufferHolder<E> {
|
||||
switch (type) {
|
||||
case MESSAGE:
|
||||
return msgBuf.isEmpty();
|
||||
case STREAM:
|
||||
case BYTE:
|
||||
return !byteBuf.readable();
|
||||
default:
|
||||
throw new Error();
|
||||
|
@ -16,6 +16,6 @@
|
||||
package io.netty.channel;
|
||||
|
||||
public enum ChannelBufferType {
|
||||
STREAM,
|
||||
BYTE,
|
||||
MESSAGE;
|
||||
}
|
||||
|
@ -18,7 +18,7 @@ package io.netty.channel;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
|
||||
|
||||
public class ChannelInboundStreamHandlerAdapter extends ChannelInboundHandlerAdapter<Byte> {
|
||||
public class ChannelInboundByteHandlerAdapter extends ChannelInboundHandlerAdapter<Byte> {
|
||||
|
||||
@Override
|
||||
public ChannelBufferHolder<Byte> newInboundBuffer(ChannelHandlerContext ctx) throws Exception {
|
@ -15,7 +15,7 @@
|
||||
*/
|
||||
package io.netty.channel;
|
||||
|
||||
public class ChannelOutboundStreamHandlerAdapter extends ChannelOutboundHandlerAdapter<Byte> {
|
||||
public class ChannelOutboundByteHandlerAdapter extends ChannelOutboundHandlerAdapter<Byte> {
|
||||
@Override
|
||||
public ChannelBufferHolder<Byte> newOutboundBuffer(ChannelHandlerContext ctx) throws Exception {
|
||||
return ChannelBufferHolders.byteBuffer();
|
@ -59,8 +59,8 @@ final class DefaultChannelHandlerContext extends DefaultAttributeMap implements
|
||||
// The content written into a bridge is flushed into the actual buffer by flushBridge().
|
||||
final AtomicReference<MessageBridge> inMsgBridge;
|
||||
final AtomicReference<MessageBridge> outMsgBridge;
|
||||
final AtomicReference<StreamBridge> inByteBridge;
|
||||
final AtomicReference<StreamBridge> outByteBridge;
|
||||
final AtomicReference<ByteBridge> inByteBridge;
|
||||
final AtomicReference<ByteBridge> outByteBridge;
|
||||
|
||||
// Runnables that calls handlers
|
||||
final Runnable fireChannelRegisteredTask = new Runnable() {
|
||||
@ -208,9 +208,9 @@ final class DefaultChannelHandlerContext extends DefaultAttributeMap implements
|
||||
}
|
||||
|
||||
switch (holder.type()) {
|
||||
case STREAM:
|
||||
case BYTE:
|
||||
inByteBuf = holder.byteBuffer();
|
||||
inByteBridge = new AtomicReference<StreamBridge>();
|
||||
inByteBridge = new AtomicReference<ByteBridge>();
|
||||
inMsgBuf = null;
|
||||
inMsgBridge = null;
|
||||
break;
|
||||
@ -239,9 +239,9 @@ final class DefaultChannelHandlerContext extends DefaultAttributeMap implements
|
||||
}
|
||||
|
||||
switch (holder.type()) {
|
||||
case STREAM:
|
||||
case BYTE:
|
||||
outByteBuf = holder.byteBuffer();
|
||||
outByteBridge = new AtomicReference<StreamBridge>();
|
||||
outByteBridge = new AtomicReference<ByteBridge>();
|
||||
outMsgBuf = null;
|
||||
outMsgBridge = null;
|
||||
break;
|
||||
@ -269,7 +269,7 @@ final class DefaultChannelHandlerContext extends DefaultAttributeMap implements
|
||||
bridge.fill();
|
||||
}
|
||||
} else if (inByteBridge != null) {
|
||||
StreamBridge bridge = inByteBridge.get();
|
||||
ByteBridge bridge = inByteBridge.get();
|
||||
if (bridge != null) {
|
||||
bridge.fill();
|
||||
}
|
||||
@ -281,7 +281,7 @@ final class DefaultChannelHandlerContext extends DefaultAttributeMap implements
|
||||
bridge.fill();
|
||||
}
|
||||
} else if (outByteBridge != null) {
|
||||
StreamBridge bridge = outByteBridge.get();
|
||||
ByteBridge bridge = outByteBridge.get();
|
||||
if (bridge != null) {
|
||||
bridge.fill();
|
||||
}
|
||||
@ -295,7 +295,7 @@ final class DefaultChannelHandlerContext extends DefaultAttributeMap implements
|
||||
bridge.flush(inMsgBuf);
|
||||
}
|
||||
} else if (inByteBridge != null) {
|
||||
StreamBridge bridge = inByteBridge.get();
|
||||
ByteBridge bridge = inByteBridge.get();
|
||||
if (bridge != null) {
|
||||
bridge.flush(inByteBuf);
|
||||
}
|
||||
@ -307,7 +307,7 @@ final class DefaultChannelHandlerContext extends DefaultAttributeMap implements
|
||||
bridge.flush(outMsgBuf);
|
||||
}
|
||||
} else if (outByteBridge != null) {
|
||||
StreamBridge bridge = outByteBridge.get();
|
||||
ByteBridge bridge = outByteBridge.get();
|
||||
if (bridge != null) {
|
||||
bridge.flush(outByteBuf);
|
||||
}
|
||||
@ -452,9 +452,9 @@ final class DefaultChannelHandlerContext extends DefaultAttributeMap implements
|
||||
if (ctx.executor().inEventLoop(currentThread)) {
|
||||
return ctx.inByteBuf;
|
||||
} else {
|
||||
StreamBridge bridge = ctx.inByteBridge.get();
|
||||
ByteBridge bridge = ctx.inByteBridge.get();
|
||||
if (bridge == null) {
|
||||
bridge = new StreamBridge();
|
||||
bridge = new ByteBridge();
|
||||
if (!ctx.inByteBridge.compareAndSet(null, bridge)) {
|
||||
bridge = ctx.inByteBridge.get();
|
||||
}
|
||||
@ -762,7 +762,7 @@ final class DefaultChannelHandlerContext extends DefaultAttributeMap implements
|
||||
}
|
||||
}
|
||||
|
||||
static final class StreamBridge {
|
||||
static final class ByteBridge {
|
||||
final ChannelBuffer byteBuf = ChannelBuffers.dynamicBuffer();
|
||||
final BlockingQueue<ChannelBuffer> exchangeBuf = QueueFactory.createQueue();
|
||||
|
||||
|
@ -18,7 +18,7 @@ package io.netty.channel;
|
||||
import static io.netty.channel.DefaultChannelHandlerContext.*;
|
||||
import io.netty.buffer.ChannelBuffer;
|
||||
import io.netty.channel.DefaultChannelHandlerContext.MessageBridge;
|
||||
import io.netty.channel.DefaultChannelHandlerContext.StreamBridge;
|
||||
import io.netty.channel.DefaultChannelHandlerContext.ByteBridge;
|
||||
import io.netty.logging.InternalLogger;
|
||||
import io.netty.logging.InternalLoggerFactory;
|
||||
|
||||
@ -893,7 +893,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
|
||||
|
||||
@Override
|
||||
public ChannelBuffer inboundByteBuffer() {
|
||||
if (channel.bufferType() != ChannelBufferType.STREAM) {
|
||||
if (channel.bufferType() != ChannelBufferType.BYTE) {
|
||||
throw new NoSuchBufferException(
|
||||
"The first inbound buffer of this channel must be a byte buffer.");
|
||||
}
|
||||
@ -947,9 +947,9 @@ public class DefaultChannelPipeline implements ChannelPipeline {
|
||||
if (ctx.executor().inEventLoop(currentThread)) {
|
||||
return ctx.outByteBuf;
|
||||
} else {
|
||||
StreamBridge bridge = ctx.outByteBridge.get();
|
||||
ByteBridge bridge = ctx.outByteBridge.get();
|
||||
if (bridge == null) {
|
||||
bridge = new StreamBridge();
|
||||
bridge = new ByteBridge();
|
||||
if (!ctx.outByteBridge.compareAndSet(null, bridge)) {
|
||||
bridge = ctx.outByteBridge.get();
|
||||
}
|
||||
@ -1434,7 +1434,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
|
||||
@Override
|
||||
public ChannelBufferHolder newOutboundBuffer(ChannelHandlerContext ctx) throws Exception {
|
||||
switch (channel.bufferType()) {
|
||||
case STREAM:
|
||||
case BYTE:
|
||||
return ChannelBufferHolders.byteBuffer();
|
||||
case MESSAGE:
|
||||
if (channel instanceof ServerChannel) {
|
||||
|
@ -83,7 +83,7 @@ public abstract class AbstractEmbeddedChannel extends AbstractChannel {
|
||||
throw new IllegalArgumentException("handlers does not provide any buffers.");
|
||||
}
|
||||
|
||||
p.addLast(new LastInboundMessageHandler(), new LastInboundStreamHandler());
|
||||
p.addLast(new LastInboundMessageHandler(), new LastInboundByteHandler());
|
||||
loop.register(this);
|
||||
}
|
||||
|
||||
@ -222,7 +222,7 @@ public abstract class AbstractEmbeddedChannel extends AbstractChannel {
|
||||
}
|
||||
}
|
||||
|
||||
private final class LastInboundStreamHandler extends ChannelInboundHandlerAdapter<Byte> {
|
||||
private final class LastInboundByteHandler extends ChannelInboundHandlerAdapter<Byte> {
|
||||
@Override
|
||||
public ChannelBufferHolder<Byte> newInboundBuffer(ChannelHandlerContext ctx) throws Exception {
|
||||
return ChannelBufferHolders.byteBuffer(lastInboundByteBuffer);
|
||||
|
@ -20,15 +20,15 @@ import io.netty.buffer.ChannelBuffers;
|
||||
import io.netty.channel.ChannelHandler;
|
||||
import io.netty.channel.ChannelBufferType;
|
||||
|
||||
public class EmbeddedStreamChannel extends AbstractEmbeddedChannel {
|
||||
public class EmbeddedByteChannel extends AbstractEmbeddedChannel {
|
||||
|
||||
public EmbeddedStreamChannel(ChannelHandler... handlers) {
|
||||
public EmbeddedByteChannel(ChannelHandler... handlers) {
|
||||
super(ChannelBuffers.dynamicBuffer(), handlers);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChannelBufferType bufferType() {
|
||||
return ChannelBufferType.STREAM;
|
||||
return ChannelBufferType.BYTE;
|
||||
}
|
||||
|
||||
public ChannelBuffer inboundBuffer() {
|
@ -24,24 +24,24 @@ import java.io.IOException;
|
||||
import java.nio.channels.SelectableChannel;
|
||||
import java.nio.channels.SelectionKey;
|
||||
|
||||
abstract class AbstractNioStreamChannel extends AbstractNioChannel {
|
||||
abstract class AbstractNioByteChannel extends AbstractNioChannel {
|
||||
|
||||
protected AbstractNioStreamChannel(
|
||||
protected AbstractNioByteChannel(
|
||||
Channel parent, Integer id, SelectableChannel ch) {
|
||||
super(parent, id, ch, SelectionKey.OP_READ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChannelBufferType bufferType() {
|
||||
return ChannelBufferType.STREAM;
|
||||
return ChannelBufferType.BYTE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Unsafe newUnsafe() {
|
||||
return new NioStreamUnsafe();
|
||||
return new NioByteUnsafe();
|
||||
}
|
||||
|
||||
private class NioStreamUnsafe extends AbstractNioUnsafe {
|
||||
private class NioByteUnsafe extends AbstractNioUnsafe {
|
||||
@Override
|
||||
public void read() {
|
||||
assert eventLoop().inEventLoop();
|
@ -28,7 +28,7 @@ import java.net.SocketAddress;
|
||||
import java.nio.channels.SelectionKey;
|
||||
import java.nio.channels.SocketChannel;
|
||||
|
||||
public class NioSocketChannel extends AbstractNioStreamChannel implements io.netty.channel.socket.SocketChannel {
|
||||
public class NioSocketChannel extends AbstractNioByteChannel implements io.netty.channel.socket.SocketChannel {
|
||||
|
||||
private static final InternalLogger logger = InternalLoggerFactory.getInstance(NioSocketChannel.class);
|
||||
|
||||
|
@ -22,23 +22,23 @@ import io.netty.channel.ChannelBufferType;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
abstract class AbstractOioStreamChannel extends AbstractOioChannel {
|
||||
abstract class AbstractOioByteChannel extends AbstractOioChannel {
|
||||
|
||||
protected AbstractOioStreamChannel(Channel parent, Integer id) {
|
||||
protected AbstractOioByteChannel(Channel parent, Integer id) {
|
||||
super(parent, id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChannelBufferType bufferType() {
|
||||
return ChannelBufferType.STREAM;
|
||||
return ChannelBufferType.BYTE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Unsafe newUnsafe() {
|
||||
return new OioStreamUnsafe();
|
||||
return new OioByteUnsafe();
|
||||
}
|
||||
|
||||
private class OioStreamUnsafe extends AbstractOioUnsafe {
|
||||
private class OioByteUnsafe extends AbstractOioUnsafe {
|
||||
@Override
|
||||
public void read() {
|
||||
assert eventLoop().inEventLoop();
|
@ -32,7 +32,7 @@ import java.net.SocketAddress;
|
||||
import java.net.SocketTimeoutException;
|
||||
import java.nio.channels.NotYetConnectedException;
|
||||
|
||||
public class OioSocketChannel extends AbstractOioStreamChannel
|
||||
public class OioSocketChannel extends AbstractOioByteChannel
|
||||
implements SocketChannel {
|
||||
|
||||
private static final InternalLogger logger =
|
||||
|
Loading…
Reference in New Issue
Block a user