Rename ByteBufUtil to BufUtil and move ChannelHandlerUtil.freeMessage() there / Remove ChannelHandlerUtil
This commit is contained in:
parent
0746199ca4
commit
affd514b8c
@ -895,17 +895,17 @@ public abstract class AbstractByteBuf implements ByteBuf {
|
|||||||
nioBuffer.flip();
|
nioBuffer.flip();
|
||||||
}
|
}
|
||||||
|
|
||||||
return ByteBufUtil.decodeString(nioBuffer, charset);
|
return BufUtil.decodeString(nioBuffer, charset);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int indexOf(int fromIndex, int toIndex, byte value) {
|
public int indexOf(int fromIndex, int toIndex, byte value) {
|
||||||
return ByteBufUtil.indexOf(this, fromIndex, toIndex, value);
|
return BufUtil.indexOf(this, fromIndex, toIndex, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int indexOf(int fromIndex, int toIndex, ByteBufIndexFinder indexFinder) {
|
public int indexOf(int fromIndex, int toIndex, ByteBufIndexFinder indexFinder) {
|
||||||
return ByteBufUtil.indexOf(this, fromIndex, toIndex, indexFinder);
|
return BufUtil.indexOf(this, fromIndex, toIndex, indexFinder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -951,7 +951,7 @@ public abstract class AbstractByteBuf implements ByteBuf {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return ByteBufUtil.hashCode(this);
|
return BufUtil.hashCode(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -960,14 +960,14 @@ public abstract class AbstractByteBuf implements ByteBuf {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (o instanceof ByteBuf) {
|
if (o instanceof ByteBuf) {
|
||||||
return ByteBufUtil.equals(this, (ByteBuf) o);
|
return BufUtil.equals(this, (ByteBuf) o);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int compareTo(ByteBuf that) {
|
public int compareTo(ByteBuf that) {
|
||||||
return ByteBufUtil.compare(this, that);
|
return BufUtil.compare(this, that);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -27,9 +27,10 @@ import java.nio.charset.CharsetEncoder;
|
|||||||
import java.nio.charset.CoderResult;
|
import java.nio.charset.CoderResult;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utility class for operate on a {@link ByteBuf}
|
* A collection of utility methods that is related with handling {@link ByteBuf}, {@link MessageBuf}, and their
|
||||||
|
* elements.
|
||||||
*/
|
*/
|
||||||
public final class ByteBufUtil {
|
public final class BufUtil {
|
||||||
|
|
||||||
private static final char[] HEXDUMP_TABLE = new char[256 * 4];
|
private static final char[] HEXDUMP_TABLE = new char[256 * 4];
|
||||||
|
|
||||||
@ -41,6 +42,21 @@ public final class ByteBufUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Try to call {@link Freeable#free()} if the specified message implements {@link Freeable}. If the specified
|
||||||
|
* message doesn't implement {@link Freeable}, this method does nothing.
|
||||||
|
*/
|
||||||
|
public static void free(Object msg) {
|
||||||
|
if (msg instanceof Freeable) {
|
||||||
|
try {
|
||||||
|
((Freeable) msg).free();
|
||||||
|
} catch (UnsupportedOperationException e) {
|
||||||
|
// This can happen for derived buffers
|
||||||
|
// TODO: Think about this
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a <a href="http://en.wikipedia.org/wiki/Hex_dump">hex dump</a>
|
* Returns a <a href="http://en.wikipedia.org/wiki/Hex_dump">hex dump</a>
|
||||||
* of the specified buffer's readable bytes.
|
* of the specified buffer's readable bytes.
|
||||||
@ -370,5 +386,5 @@ public final class ByteBufUtil {
|
|||||||
return dst.flip().toString();
|
return dst.flip().toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private ByteBufUtil() { }
|
private BufUtil() { }
|
||||||
}
|
}
|
@ -245,7 +245,7 @@ public final class SwappedByteBuf implements ByteBuf {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public short getShort(int index) {
|
public short getShort(int index) {
|
||||||
return ByteBufUtil.swapShort(buf.getShort(index));
|
return BufUtil.swapShort(buf.getShort(index));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -255,7 +255,7 @@ public final class SwappedByteBuf implements ByteBuf {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMedium(int index) {
|
public int getMedium(int index) {
|
||||||
return ByteBufUtil.swapMedium(buf.getMedium(index));
|
return BufUtil.swapMedium(buf.getMedium(index));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -265,7 +265,7 @@ public final class SwappedByteBuf implements ByteBuf {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getInt(int index) {
|
public int getInt(int index) {
|
||||||
return ByteBufUtil.swapInt(buf.getInt(index));
|
return BufUtil.swapInt(buf.getInt(index));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -275,7 +275,7 @@ public final class SwappedByteBuf implements ByteBuf {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getLong(int index) {
|
public long getLong(int index) {
|
||||||
return ByteBufUtil.swapLong(buf.getLong(index));
|
return BufUtil.swapLong(buf.getLong(index));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -354,25 +354,25 @@ public final class SwappedByteBuf implements ByteBuf {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByteBuf setShort(int index, int value) {
|
public ByteBuf setShort(int index, int value) {
|
||||||
buf.setShort(index, ByteBufUtil.swapShort((short) value));
|
buf.setShort(index, BufUtil.swapShort((short) value));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByteBuf setMedium(int index, int value) {
|
public ByteBuf setMedium(int index, int value) {
|
||||||
buf.setMedium(index, ByteBufUtil.swapMedium(value));
|
buf.setMedium(index, BufUtil.swapMedium(value));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByteBuf setInt(int index, int value) {
|
public ByteBuf setInt(int index, int value) {
|
||||||
buf.setInt(index, ByteBufUtil.swapInt(value));
|
buf.setInt(index, BufUtil.swapInt(value));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByteBuf setLong(int index, long value) {
|
public ByteBuf setLong(int index, long value) {
|
||||||
buf.setLong(index, ByteBufUtil.swapLong(value));
|
buf.setLong(index, BufUtil.swapLong(value));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -463,7 +463,7 @@ public final class SwappedByteBuf implements ByteBuf {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public short readShort() {
|
public short readShort() {
|
||||||
return ByteBufUtil.swapShort(buf.readShort());
|
return BufUtil.swapShort(buf.readShort());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -473,7 +473,7 @@ public final class SwappedByteBuf implements ByteBuf {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int readMedium() {
|
public int readMedium() {
|
||||||
return ByteBufUtil.swapMedium(buf.readMedium());
|
return BufUtil.swapMedium(buf.readMedium());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -483,7 +483,7 @@ public final class SwappedByteBuf implements ByteBuf {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int readInt() {
|
public int readInt() {
|
||||||
return ByteBufUtil.swapInt(buf.readInt());
|
return BufUtil.swapInt(buf.readInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -493,7 +493,7 @@ public final class SwappedByteBuf implements ByteBuf {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long readLong() {
|
public long readLong() {
|
||||||
return ByteBufUtil.swapLong(buf.readLong());
|
return BufUtil.swapLong(buf.readLong());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -588,25 +588,25 @@ public final class SwappedByteBuf implements ByteBuf {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByteBuf writeShort(int value) {
|
public ByteBuf writeShort(int value) {
|
||||||
buf.writeShort(ByteBufUtil.swapShort((short) value));
|
buf.writeShort(BufUtil.swapShort((short) value));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByteBuf writeMedium(int value) {
|
public ByteBuf writeMedium(int value) {
|
||||||
buf.writeMedium(ByteBufUtil.swapMedium(value));
|
buf.writeMedium(BufUtil.swapMedium(value));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByteBuf writeInt(int value) {
|
public ByteBuf writeInt(int value) {
|
||||||
buf.writeInt(ByteBufUtil.swapInt(value));
|
buf.writeInt(BufUtil.swapInt(value));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByteBuf writeLong(long value) {
|
public ByteBuf writeLong(long value) {
|
||||||
buf.writeLong(ByteBufUtil.swapLong(value));
|
buf.writeLong(BufUtil.swapLong(value));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -836,14 +836,14 @@ public final class SwappedByteBuf implements ByteBuf {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (obj instanceof ByteBuf) {
|
if (obj instanceof ByteBuf) {
|
||||||
return ByteBufUtil.equals(this, (ByteBuf) obj);
|
return BufUtil.equals(this, (ByteBuf) obj);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int compareTo(ByteBuf buffer) {
|
public int compareTo(ByteBuf buffer) {
|
||||||
return ByteBufUtil.compare(this, buffer);
|
return BufUtil.compare(this, buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -843,7 +843,7 @@ public final class Unpooled {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static ByteBuf copiedBuffer(CharBuffer buffer, Charset charset) {
|
private static ByteBuf copiedBuffer(CharBuffer buffer, Charset charset) {
|
||||||
ByteBuffer dst = ByteBufUtil.encodeString(buffer, charset);
|
ByteBuffer dst = BufUtil.encodeString(buffer, charset);
|
||||||
ByteBuf result = wrappedBuffer(dst.array());
|
ByteBuf result = wrappedBuffer(dst.array());
|
||||||
result.writerIndex(dst.remaining());
|
result.writerIndex(dst.remaining());
|
||||||
return result;
|
return result;
|
||||||
|
@ -140,20 +140,20 @@ public abstract class AbstractCompositeByteBufTest extends
|
|||||||
a.writerIndex(a.writerIndex() + 1);
|
a.writerIndex(a.writerIndex() + 1);
|
||||||
b.writerIndex(b.writerIndex() + 1);
|
b.writerIndex(b.writerIndex() + 1);
|
||||||
assertEquals(a.writerIndex(), b.writerIndex());
|
assertEquals(a.writerIndex(), b.writerIndex());
|
||||||
assertTrue(ByteBufUtil.equals(a, b));
|
assertTrue(BufUtil.equals(a, b));
|
||||||
// now discard
|
// now discard
|
||||||
a.discardReadBytes();
|
a.discardReadBytes();
|
||||||
b.discardReadBytes();
|
b.discardReadBytes();
|
||||||
assertEquals(a.readerIndex(), b.readerIndex());
|
assertEquals(a.readerIndex(), b.readerIndex());
|
||||||
assertEquals(a.writerIndex(), b.writerIndex());
|
assertEquals(a.writerIndex(), b.writerIndex());
|
||||||
assertTrue(ByteBufUtil.equals(a, b));
|
assertTrue(BufUtil.equals(a, b));
|
||||||
a.resetReaderIndex();
|
a.resetReaderIndex();
|
||||||
b.resetReaderIndex();
|
b.resetReaderIndex();
|
||||||
assertEquals(a.readerIndex(), b.readerIndex());
|
assertEquals(a.readerIndex(), b.readerIndex());
|
||||||
a.resetWriterIndex();
|
a.resetWriterIndex();
|
||||||
b.resetWriterIndex();
|
b.resetWriterIndex();
|
||||||
assertEquals(a.writerIndex(), b.writerIndex());
|
assertEquals(a.writerIndex(), b.writerIndex());
|
||||||
assertTrue(ByteBufUtil.equals(a, b));
|
assertTrue(BufUtil.equals(a, b));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -228,57 +228,57 @@ public abstract class AbstractCompositeByteBufTest extends
|
|||||||
a = wrappedBuffer(new byte[] { 1 }).order(order);
|
a = wrappedBuffer(new byte[] { 1 }).order(order);
|
||||||
b = wrappedBuffer(wrappedBuffer(new byte[] { 1 }).order(order),
|
b = wrappedBuffer(wrappedBuffer(new byte[] { 1 }).order(order),
|
||||||
wrappedBuffer(new byte[] { 2 }).order(order));
|
wrappedBuffer(new byte[] { 2 }).order(order));
|
||||||
assertFalse(ByteBufUtil.equals(a, b));
|
assertFalse(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Same content, same firstIndex, short length.
|
// Same content, same firstIndex, short length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3 }).order(order);
|
a = wrappedBuffer(new byte[] { 1, 2, 3 }).order(order);
|
||||||
b = wrappedBuffer(wrappedBuffer(new byte[] { 1 }).order(order),
|
b = wrappedBuffer(wrappedBuffer(new byte[] { 1 }).order(order),
|
||||||
wrappedBuffer(new byte[] { 2 }).order(order),
|
wrappedBuffer(new byte[] { 2 }).order(order),
|
||||||
wrappedBuffer(new byte[] { 3 }).order(order));
|
wrappedBuffer(new byte[] { 3 }).order(order));
|
||||||
assertTrue(ByteBufUtil.equals(a, b));
|
assertTrue(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Same content, different firstIndex, short length.
|
// Same content, different firstIndex, short length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3 }).order(order);
|
a = wrappedBuffer(new byte[] { 1, 2, 3 }).order(order);
|
||||||
b = wrappedBuffer(wrappedBuffer(new byte[] { 0, 1, 2, 3, 4 }, 1, 2).order(order),
|
b = wrappedBuffer(wrappedBuffer(new byte[] { 0, 1, 2, 3, 4 }, 1, 2).order(order),
|
||||||
wrappedBuffer(new byte[] { 0, 1, 2, 3, 4 }, 3, 1).order(order));
|
wrappedBuffer(new byte[] { 0, 1, 2, 3, 4 }, 3, 1).order(order));
|
||||||
assertTrue(ByteBufUtil.equals(a, b));
|
assertTrue(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Different content, same firstIndex, short length.
|
// Different content, same firstIndex, short length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3 }).order(order);
|
a = wrappedBuffer(new byte[] { 1, 2, 3 }).order(order);
|
||||||
b = wrappedBuffer(wrappedBuffer(new byte[] { 1, 2 }).order(order),
|
b = wrappedBuffer(wrappedBuffer(new byte[] { 1, 2 }).order(order),
|
||||||
wrappedBuffer(new byte[] { 4 }).order(order));
|
wrappedBuffer(new byte[] { 4 }).order(order));
|
||||||
assertFalse(ByteBufUtil.equals(a, b));
|
assertFalse(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Different content, different firstIndex, short length.
|
// Different content, different firstIndex, short length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3 }).order(order);
|
a = wrappedBuffer(new byte[] { 1, 2, 3 }).order(order);
|
||||||
b = wrappedBuffer(wrappedBuffer(new byte[] { 0, 1, 2, 4, 5 }, 1, 2).order(order),
|
b = wrappedBuffer(wrappedBuffer(new byte[] { 0, 1, 2, 4, 5 }, 1, 2).order(order),
|
||||||
wrappedBuffer(new byte[] { 0, 1, 2, 4, 5 }, 3, 1).order(order));
|
wrappedBuffer(new byte[] { 0, 1, 2, 4, 5 }, 3, 1).order(order));
|
||||||
assertFalse(ByteBufUtil.equals(a, b));
|
assertFalse(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Same content, same firstIndex, long length.
|
// Same content, same firstIndex, long length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }).order(order);
|
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }).order(order);
|
||||||
b = wrappedBuffer(wrappedBuffer(new byte[] { 1, 2, 3 }).order(order),
|
b = wrappedBuffer(wrappedBuffer(new byte[] { 1, 2, 3 }).order(order),
|
||||||
wrappedBuffer(new byte[] { 4, 5, 6 }).order(order),
|
wrappedBuffer(new byte[] { 4, 5, 6 }).order(order),
|
||||||
wrappedBuffer(new byte[] { 7, 8, 9, 10 }).order(order));
|
wrappedBuffer(new byte[] { 7, 8, 9, 10 }).order(order));
|
||||||
assertTrue(ByteBufUtil.equals(a, b));
|
assertTrue(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Same content, different firstIndex, long length.
|
// Same content, different firstIndex, long length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }).order(order);
|
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }).order(order);
|
||||||
b = wrappedBuffer(wrappedBuffer(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 1, 5).order(order),
|
b = wrappedBuffer(wrappedBuffer(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 1, 5).order(order),
|
||||||
wrappedBuffer(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 6, 5).order(order));
|
wrappedBuffer(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 6, 5).order(order));
|
||||||
assertTrue(ByteBufUtil.equals(a, b));
|
assertTrue(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Different content, same firstIndex, long length.
|
// Different content, same firstIndex, long length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }).order(order);
|
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }).order(order);
|
||||||
b = wrappedBuffer(wrappedBuffer(new byte[] { 1, 2, 3, 4, 6 }).order(order),
|
b = wrappedBuffer(wrappedBuffer(new byte[] { 1, 2, 3, 4, 6 }).order(order),
|
||||||
wrappedBuffer(new byte[] { 7, 8, 5, 9, 10 }).order(order));
|
wrappedBuffer(new byte[] { 7, 8, 5, 9, 10 }).order(order));
|
||||||
assertFalse(ByteBufUtil.equals(a, b));
|
assertFalse(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Different content, different firstIndex, long length.
|
// Different content, different firstIndex, long length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }).order(order);
|
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }).order(order);
|
||||||
b = wrappedBuffer(wrappedBuffer(new byte[] { 0, 1, 2, 3, 4, 6, 7, 8, 5, 9, 10, 11 }, 1, 5).order(order),
|
b = wrappedBuffer(wrappedBuffer(new byte[] { 0, 1, 2, 3, 4, 6, 7, 8, 5, 9, 10, 11 }, 1, 5).order(order),
|
||||||
wrappedBuffer(new byte[] { 0, 1, 2, 3, 4, 6, 7, 8, 5, 9, 10, 11 }, 6, 5).order(order));
|
wrappedBuffer(new byte[] { 0, 1, 2, 3, 4, 6, 7, 8, 5, 9, 10, 11 }, 6, 5).order(order));
|
||||||
assertFalse(ByteBufUtil.equals(a, b));
|
assertFalse(BufUtil.equals(a, b));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -334,7 +334,7 @@ public abstract class AbstractCompositeByteBufTest extends
|
|||||||
b.writerIndex(b.writerIndex() - 1);
|
b.writerIndex(b.writerIndex() - 1);
|
||||||
b.writeBytes(
|
b.writeBytes(
|
||||||
wrappedBuffer(new byte[] { 2 }).order(order));
|
wrappedBuffer(new byte[] { 2 }).order(order));
|
||||||
assertFalse(ByteBufUtil.equals(a, b));
|
assertFalse(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Same content, same firstIndex, short length.
|
// Same content, same firstIndex, short length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3 }).order(order);
|
a = wrappedBuffer(new byte[] { 1, 2, 3 }).order(order);
|
||||||
@ -344,7 +344,7 @@ public abstract class AbstractCompositeByteBufTest extends
|
|||||||
b.writeBytes(
|
b.writeBytes(
|
||||||
wrappedBuffer(new byte[] { 2 }).order(order));
|
wrappedBuffer(new byte[] { 2 }).order(order));
|
||||||
b.writeBytes(wrappedBuffer(new byte[] { 3 }).order(order));
|
b.writeBytes(wrappedBuffer(new byte[] { 3 }).order(order));
|
||||||
assertTrue(ByteBufUtil.equals(a, b));
|
assertTrue(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Same content, different firstIndex, short length.
|
// Same content, different firstIndex, short length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3 }).order(order);
|
a = wrappedBuffer(new byte[] { 1, 2, 3 }).order(order);
|
||||||
@ -353,7 +353,7 @@ public abstract class AbstractCompositeByteBufTest extends
|
|||||||
b.writerIndex(b.writerIndex() - 1);
|
b.writerIndex(b.writerIndex() - 1);
|
||||||
b.writeBytes(
|
b.writeBytes(
|
||||||
wrappedBuffer(new byte[] { 0, 1, 2, 3, 4 }, 3, 1).order(order));
|
wrappedBuffer(new byte[] { 0, 1, 2, 3, 4 }, 3, 1).order(order));
|
||||||
assertTrue(ByteBufUtil.equals(a, b));
|
assertTrue(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Different content, same firstIndex, short length.
|
// Different content, same firstIndex, short length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3 }).order(order);
|
a = wrappedBuffer(new byte[] { 1, 2, 3 }).order(order);
|
||||||
@ -362,7 +362,7 @@ public abstract class AbstractCompositeByteBufTest extends
|
|||||||
b.writerIndex(b.writerIndex() - 1);
|
b.writerIndex(b.writerIndex() - 1);
|
||||||
b.writeBytes(
|
b.writeBytes(
|
||||||
wrappedBuffer(new byte[] { 4 }).order(order));
|
wrappedBuffer(new byte[] { 4 }).order(order));
|
||||||
assertFalse(ByteBufUtil.equals(a, b));
|
assertFalse(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Different content, different firstIndex, short length.
|
// Different content, different firstIndex, short length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3 }).order(order);
|
a = wrappedBuffer(new byte[] { 1, 2, 3 }).order(order);
|
||||||
@ -371,7 +371,7 @@ public abstract class AbstractCompositeByteBufTest extends
|
|||||||
b.writerIndex(b.writerIndex() - 1);
|
b.writerIndex(b.writerIndex() - 1);
|
||||||
b.writeBytes(
|
b.writeBytes(
|
||||||
wrappedBuffer(new byte[] { 0, 1, 2, 4, 5 }, 3, 1).order(order));
|
wrappedBuffer(new byte[] { 0, 1, 2, 4, 5 }, 3, 1).order(order));
|
||||||
assertFalse(ByteBufUtil.equals(a, b));
|
assertFalse(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Same content, same firstIndex, long length.
|
// Same content, same firstIndex, long length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }).order(order);
|
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }).order(order);
|
||||||
@ -382,7 +382,7 @@ public abstract class AbstractCompositeByteBufTest extends
|
|||||||
wrappedBuffer(new byte[] { 4, 5, 6 }).order(order));
|
wrappedBuffer(new byte[] { 4, 5, 6 }).order(order));
|
||||||
b.writeBytes(
|
b.writeBytes(
|
||||||
wrappedBuffer(new byte[] { 7, 8, 9, 10 }).order(order));
|
wrappedBuffer(new byte[] { 7, 8, 9, 10 }).order(order));
|
||||||
assertTrue(ByteBufUtil.equals(a, b));
|
assertTrue(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Same content, different firstIndex, long length.
|
// Same content, different firstIndex, long length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }).order(order);
|
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }).order(order);
|
||||||
@ -391,7 +391,7 @@ public abstract class AbstractCompositeByteBufTest extends
|
|||||||
b.writerIndex(b.writerIndex() - 5);
|
b.writerIndex(b.writerIndex() - 5);
|
||||||
b.writeBytes(
|
b.writeBytes(
|
||||||
wrappedBuffer(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 6, 5).order(order));
|
wrappedBuffer(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 6, 5).order(order));
|
||||||
assertTrue(ByteBufUtil.equals(a, b));
|
assertTrue(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Different content, same firstIndex, long length.
|
// Different content, same firstIndex, long length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }).order(order);
|
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }).order(order);
|
||||||
@ -400,7 +400,7 @@ public abstract class AbstractCompositeByteBufTest extends
|
|||||||
b.writerIndex(b.writerIndex() - 5);
|
b.writerIndex(b.writerIndex() - 5);
|
||||||
b.writeBytes(
|
b.writeBytes(
|
||||||
wrappedBuffer(new byte[] { 7, 8, 5, 9, 10 }).order(order));
|
wrappedBuffer(new byte[] { 7, 8, 5, 9, 10 }).order(order));
|
||||||
assertFalse(ByteBufUtil.equals(a, b));
|
assertFalse(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Different content, different firstIndex, long length.
|
// Different content, different firstIndex, long length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }).order(order);
|
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }).order(order);
|
||||||
@ -409,7 +409,7 @@ public abstract class AbstractCompositeByteBufTest extends
|
|||||||
b.writerIndex(b.writerIndex() - 5);
|
b.writerIndex(b.writerIndex() - 5);
|
||||||
b.writeBytes(
|
b.writeBytes(
|
||||||
wrappedBuffer(new byte[] { 0, 1, 2, 3, 4, 6, 7, 8, 5, 9, 10, 11 }, 6, 5).order(order));
|
wrappedBuffer(new byte[] { 0, 1, 2, 3, 4, 6, 7, 8, 5, 9, 10, 11 }, 6, 5).order(order));
|
||||||
assertFalse(ByteBufUtil.equals(a, b));
|
assertFalse(BufUtil.equals(a, b));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -70,7 +70,7 @@ public class UnpooledTest {
|
|||||||
for (Entry<byte[], Integer> e: map.entrySet()) {
|
for (Entry<byte[], Integer> e: map.entrySet()) {
|
||||||
assertEquals(
|
assertEquals(
|
||||||
e.getValue().intValue(),
|
e.getValue().intValue(),
|
||||||
ByteBufUtil.hashCode(wrappedBuffer(e.getKey())));
|
BufUtil.hashCode(wrappedBuffer(e.getKey())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,47 +81,47 @@ public class UnpooledTest {
|
|||||||
// Different length.
|
// Different length.
|
||||||
a = wrappedBuffer(new byte[] { 1 });
|
a = wrappedBuffer(new byte[] { 1 });
|
||||||
b = wrappedBuffer(new byte[] { 1, 2 });
|
b = wrappedBuffer(new byte[] { 1, 2 });
|
||||||
assertFalse(ByteBufUtil.equals(a, b));
|
assertFalse(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Same content, same firstIndex, short length.
|
// Same content, same firstIndex, short length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3 });
|
a = wrappedBuffer(new byte[] { 1, 2, 3 });
|
||||||
b = wrappedBuffer(new byte[] { 1, 2, 3 });
|
b = wrappedBuffer(new byte[] { 1, 2, 3 });
|
||||||
assertTrue(ByteBufUtil.equals(a, b));
|
assertTrue(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Same content, different firstIndex, short length.
|
// Same content, different firstIndex, short length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3 });
|
a = wrappedBuffer(new byte[] { 1, 2, 3 });
|
||||||
b = wrappedBuffer(new byte[] { 0, 1, 2, 3, 4 }, 1, 3);
|
b = wrappedBuffer(new byte[] { 0, 1, 2, 3, 4 }, 1, 3);
|
||||||
assertTrue(ByteBufUtil.equals(a, b));
|
assertTrue(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Different content, same firstIndex, short length.
|
// Different content, same firstIndex, short length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3 });
|
a = wrappedBuffer(new byte[] { 1, 2, 3 });
|
||||||
b = wrappedBuffer(new byte[] { 1, 2, 4 });
|
b = wrappedBuffer(new byte[] { 1, 2, 4 });
|
||||||
assertFalse(ByteBufUtil.equals(a, b));
|
assertFalse(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Different content, different firstIndex, short length.
|
// Different content, different firstIndex, short length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3 });
|
a = wrappedBuffer(new byte[] { 1, 2, 3 });
|
||||||
b = wrappedBuffer(new byte[] { 0, 1, 2, 4, 5 }, 1, 3);
|
b = wrappedBuffer(new byte[] { 0, 1, 2, 4, 5 }, 1, 3);
|
||||||
assertFalse(ByteBufUtil.equals(a, b));
|
assertFalse(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Same content, same firstIndex, long length.
|
// Same content, same firstIndex, long length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
|
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
|
||||||
b = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
|
b = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
|
||||||
assertTrue(ByteBufUtil.equals(a, b));
|
assertTrue(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Same content, different firstIndex, long length.
|
// Same content, different firstIndex, long length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
|
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
|
||||||
b = wrappedBuffer(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 1, 10);
|
b = wrappedBuffer(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 1, 10);
|
||||||
assertTrue(ByteBufUtil.equals(a, b));
|
assertTrue(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Different content, same firstIndex, long length.
|
// Different content, same firstIndex, long length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
|
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
|
||||||
b = wrappedBuffer(new byte[] { 1, 2, 3, 4, 6, 7, 8, 5, 9, 10 });
|
b = wrappedBuffer(new byte[] { 1, 2, 3, 4, 6, 7, 8, 5, 9, 10 });
|
||||||
assertFalse(ByteBufUtil.equals(a, b));
|
assertFalse(BufUtil.equals(a, b));
|
||||||
|
|
||||||
// Different content, different firstIndex, long length.
|
// Different content, different firstIndex, long length.
|
||||||
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
|
a = wrappedBuffer(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
|
||||||
b = wrappedBuffer(new byte[] { 0, 1, 2, 3, 4, 6, 7, 8, 5, 9, 10, 11 }, 1, 10);
|
b = wrappedBuffer(new byte[] { 0, 1, 2, 3, 4, 6, 7, 8, 5, 9, 10, 11 }, 1, 10);
|
||||||
assertFalse(ByteBufUtil.equals(a, b));
|
assertFalse(BufUtil.equals(a, b));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -147,11 +147,11 @@ public class UnpooledTest {
|
|||||||
for (int i = 0; i < expected.size(); i ++) {
|
for (int i = 0; i < expected.size(); i ++) {
|
||||||
for (int j = 0; j < expected.size(); j ++) {
|
for (int j = 0; j < expected.size(); j ++) {
|
||||||
if (i == j) {
|
if (i == j) {
|
||||||
assertEquals(0, ByteBufUtil.compare(expected.get(i), expected.get(j)));
|
assertEquals(0, BufUtil.compare(expected.get(i), expected.get(j)));
|
||||||
} else if (i < j) {
|
} else if (i < j) {
|
||||||
assertTrue(ByteBufUtil.compare(expected.get(i), expected.get(j)) < 0);
|
assertTrue(BufUtil.compare(expected.get(i), expected.get(j)) < 0);
|
||||||
} else {
|
} else {
|
||||||
assertTrue(ByteBufUtil.compare(expected.get(i), expected.get(j)) > 0);
|
assertTrue(BufUtil.compare(expected.get(i), expected.get(j)) > 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -196,12 +196,12 @@ public class UnpooledTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testCompare2() {
|
public void testCompare2() {
|
||||||
assertTrue(ByteBufUtil.compare(
|
assertTrue(BufUtil.compare(
|
||||||
wrappedBuffer(new byte[]{(byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF}),
|
wrappedBuffer(new byte[]{(byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF}),
|
||||||
wrappedBuffer(new byte[]{(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00}))
|
wrappedBuffer(new byte[]{(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00}))
|
||||||
> 0);
|
> 0);
|
||||||
|
|
||||||
assertTrue(ByteBufUtil.compare(
|
assertTrue(BufUtil.compare(
|
||||||
wrappedBuffer(new byte[]{(byte) 0xFF}),
|
wrappedBuffer(new byte[]{(byte) 0xFF}),
|
||||||
wrappedBuffer(new byte[]{(byte) 0x00}))
|
wrappedBuffer(new byte[]{(byte) 0x00}))
|
||||||
> 0);
|
> 0);
|
||||||
@ -302,15 +302,15 @@ public class UnpooledTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testHexDump() {
|
public void testHexDump() {
|
||||||
assertEquals("", ByteBufUtil.hexDump(EMPTY_BUFFER));
|
assertEquals("", BufUtil.hexDump(EMPTY_BUFFER));
|
||||||
|
|
||||||
assertEquals("123456", ByteBufUtil.hexDump(wrappedBuffer(
|
assertEquals("123456", BufUtil.hexDump(wrappedBuffer(
|
||||||
new byte[] {
|
new byte[]{
|
||||||
0x12, 0x34, 0x56
|
0x12, 0x34, 0x56
|
||||||
})));
|
})));
|
||||||
|
|
||||||
assertEquals("1234567890abcdef", ByteBufUtil.hexDump(wrappedBuffer(
|
assertEquals("1234567890abcdef", BufUtil.hexDump(wrappedBuffer(
|
||||||
new byte[] {
|
new byte[]{
|
||||||
0x12, 0x34, 0x56, 0x78,
|
0x12, 0x34, 0x56, 0x78,
|
||||||
(byte) 0x90, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF
|
(byte) 0x90, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF
|
||||||
})));
|
})));
|
||||||
@ -318,8 +318,8 @@ public class UnpooledTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSwapMedium() {
|
public void testSwapMedium() {
|
||||||
assertEquals(0x563412, ByteBufUtil.swapMedium(0x123456));
|
assertEquals(0x563412, BufUtil.swapMedium(0x123456));
|
||||||
assertEquals(0x80, ByteBufUtil.swapMedium(0x800000));
|
assertEquals(0x80, BufUtil.swapMedium(0x800000));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -15,10 +15,10 @@
|
|||||||
*/
|
*/
|
||||||
package io.netty.handler.codec;
|
package io.netty.handler.codec;
|
||||||
|
|
||||||
|
import io.netty.buffer.BufUtil;
|
||||||
import io.netty.buffer.MessageBuf;
|
import io.netty.buffer.MessageBuf;
|
||||||
import io.netty.channel.ChannelDuplexHandler;
|
import io.netty.channel.ChannelDuplexHandler;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
import io.netty.channel.ChannelHandlerUtil;
|
|
||||||
import io.netty.channel.ChannelInboundMessageHandler;
|
import io.netty.channel.ChannelInboundMessageHandler;
|
||||||
import io.netty.channel.ChannelInboundMessageHandlerAdapter;
|
import io.netty.channel.ChannelInboundMessageHandlerAdapter;
|
||||||
import io.netty.channel.ChannelOutboundMessageHandler;
|
import io.netty.channel.ChannelOutboundMessageHandler;
|
||||||
@ -174,10 +174,10 @@ public abstract class MessageToMessageCodec<INBOUND_IN, OUTBOUND_IN>
|
|||||||
protected abstract Object decode(ChannelHandlerContext ctx, INBOUND_IN msg) throws Exception;
|
protected abstract Object decode(ChannelHandlerContext ctx, INBOUND_IN msg) throws Exception;
|
||||||
|
|
||||||
protected void freeInboundMessage(INBOUND_IN msg) throws Exception {
|
protected void freeInboundMessage(INBOUND_IN msg) throws Exception {
|
||||||
ChannelHandlerUtil.freeMessage(msg);
|
BufUtil.free(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void freeOutboundMessage(OUTBOUND_IN msg) throws Exception {
|
protected void freeOutboundMessage(OUTBOUND_IN msg) throws Exception {
|
||||||
ChannelHandlerUtil.freeMessage(msg);
|
BufUtil.free(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,8 +15,8 @@
|
|||||||
*/
|
*/
|
||||||
package io.netty.handler.ssl;
|
package io.netty.handler.ssl;
|
||||||
|
|
||||||
|
import io.netty.buffer.BufUtil;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.buffer.ByteBufUtil;
|
|
||||||
import io.netty.channel.Channel;
|
import io.netty.channel.Channel;
|
||||||
import io.netty.channel.ChannelDuplexHandler;
|
import io.netty.channel.ChannelDuplexHandler;
|
||||||
import io.netty.channel.ChannelFlushPromiseNotifier;
|
import io.netty.channel.ChannelFlushPromiseNotifier;
|
||||||
@ -779,7 +779,7 @@ public class SslHandler
|
|||||||
if (packetLength == -1) {
|
if (packetLength == -1) {
|
||||||
// Bad data - discard the buffer and raise an exception.
|
// Bad data - discard the buffer and raise an exception.
|
||||||
NotSslRecordException e = new NotSslRecordException(
|
NotSslRecordException e = new NotSslRecordException(
|
||||||
"not an SSL/TLS record: " + ByteBufUtil.hexDump(in));
|
"not an SSL/TLS record: " + BufUtil.hexDump(in));
|
||||||
in.skipBytes(in.readableBytes());
|
in.skipBytes(in.readableBytes());
|
||||||
ctx.fireExceptionCaught(e);
|
ctx.fireExceptionCaught(e);
|
||||||
setHandshakeFailure(e);
|
setHandshakeFailure(e);
|
||||||
|
@ -16,8 +16,8 @@
|
|||||||
package io.netty.channel.sctp;
|
package io.netty.channel.sctp;
|
||||||
|
|
||||||
import com.sun.nio.sctp.MessageInfo;
|
import com.sun.nio.sctp.MessageInfo;
|
||||||
|
import io.netty.buffer.BufUtil;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.buffer.ByteBufUtil;
|
|
||||||
import io.netty.buffer.DefaultByteBufHolder;
|
import io.netty.buffer.DefaultByteBufHolder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -144,6 +144,6 @@ public final class SctpMessage extends DefaultByteBufHolder {
|
|||||||
}
|
}
|
||||||
return "SctpFrame{" +
|
return "SctpFrame{" +
|
||||||
"streamIdentifier=" + streamIdentifier + ", protocolIdentifier=" + protocolIdentifier +
|
"streamIdentifier=" + streamIdentifier + ", protocolIdentifier=" + protocolIdentifier +
|
||||||
", data=" + ByteBufUtil.hexDump(data()) + '}';
|
", data=" + BufUtil.hexDump(data()) + '}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2012 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.channel;
|
|
||||||
|
|
||||||
import io.netty.buffer.Freeable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Utilities for {@link ChannelHandler} implementations.
|
|
||||||
*/
|
|
||||||
public final class ChannelHandlerUtil {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Try to free up resources that are held by the message.
|
|
||||||
*/
|
|
||||||
public static void freeMessage(Object msg) throws Exception {
|
|
||||||
if (msg instanceof Freeable) {
|
|
||||||
try {
|
|
||||||
((Freeable) msg).free();
|
|
||||||
} catch (UnsupportedOperationException e) {
|
|
||||||
// This can happen for derived buffers
|
|
||||||
// TODO: Think about this
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private ChannelHandlerUtil() {
|
|
||||||
// Unused
|
|
||||||
}
|
|
||||||
}
|
|
@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package io.netty.channel;
|
package io.netty.channel;
|
||||||
|
|
||||||
|
import io.netty.buffer.BufUtil;
|
||||||
import io.netty.buffer.MessageBuf;
|
import io.netty.buffer.MessageBuf;
|
||||||
import io.netty.buffer.Unpooled;
|
import io.netty.buffer.Unpooled;
|
||||||
import io.netty.util.internal.TypeParameterMatcher;
|
import io.netty.util.internal.TypeParameterMatcher;
|
||||||
@ -170,6 +171,6 @@ public abstract class ChannelInboundMessageHandlerAdapter<I>
|
|||||||
* just pass-through the input message or need it for later usage.
|
* just pass-through the input message or need it for later usage.
|
||||||
*/
|
*/
|
||||||
protected void freeInboundMessage(I msg) throws Exception {
|
protected void freeInboundMessage(I msg) throws Exception {
|
||||||
ChannelHandlerUtil.freeMessage(msg);
|
BufUtil.free(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package io.netty.channel;
|
package io.netty.channel;
|
||||||
|
|
||||||
|
import io.netty.buffer.BufUtil;
|
||||||
import io.netty.buffer.MessageBuf;
|
import io.netty.buffer.MessageBuf;
|
||||||
import io.netty.buffer.Unpooled;
|
import io.netty.buffer.Unpooled;
|
||||||
import io.netty.util.internal.TypeParameterMatcher;
|
import io.netty.util.internal.TypeParameterMatcher;
|
||||||
@ -115,6 +116,6 @@ public abstract class ChannelOutboundMessageHandlerAdapter<I>
|
|||||||
* just pass-through the input message or need it for later usage.
|
* just pass-through the input message or need it for later usage.
|
||||||
*/
|
*/
|
||||||
protected void freeOutboundMessage(I msg) throws Exception {
|
protected void freeOutboundMessage(I msg) throws Exception {
|
||||||
ChannelHandlerUtil.freeMessage(msg);
|
BufUtil.free(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,8 +15,8 @@
|
|||||||
*/
|
*/
|
||||||
package io.netty.channel.socket;
|
package io.netty.channel.socket;
|
||||||
|
|
||||||
|
import io.netty.buffer.BufUtil;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.buffer.ByteBufUtil;
|
|
||||||
import io.netty.buffer.DefaultByteBufHolder;
|
import io.netty.buffer.DefaultByteBufHolder;
|
||||||
|
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
@ -62,6 +62,6 @@ public final class DatagramPacket extends DefaultByteBufHolder {
|
|||||||
", data=(FREED)}";
|
", data=(FREED)}";
|
||||||
}
|
}
|
||||||
return "DatagramPacket{remoteAddress=" + remoteAddress().toString() +
|
return "DatagramPacket{remoteAddress=" + remoteAddress().toString() +
|
||||||
", data=" + ByteBufUtil.hexDump(data()) + '}';
|
", data=" + BufUtil.hexDump(data()) + '}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user