1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty.buffer;
17
18 import io.netty.util.internal.CleanableDirectBuffer;
19 import io.netty.util.internal.PlatformDependent;
20
21 import java.nio.ByteBuffer;
22
23 class UnpooledUnsafeNoCleanerDirectByteBuf extends UnpooledUnsafeDirectByteBuf {
24 UnpooledUnsafeNoCleanerDirectByteBuf(ByteBufAllocator alloc, int initialCapacity, int maxCapacity) {
25 super(alloc, initialCapacity, maxCapacity);
26 }
27
28 @Override
29 protected CleanableDirectBuffer allocateDirectBuffer(int capacity) {
30 return PlatformDependent.allocateDirectBufferNoCleaner(capacity);
31 }
32
33 @Override
34 protected ByteBuffer allocateDirect(int initialCapacity) {
35 throw new UnsupportedOperationException();
36 }
37
38 CleanableDirectBuffer reallocateDirect(CleanableDirectBuffer oldBuffer, int initialCapacity) {
39 return PlatformDependent.reallocateDirectBufferNoCleaner(oldBuffer, initialCapacity);
40 }
41
42 @Override
43 protected void freeDirect(ByteBuffer buffer) {
44 throw new UnsupportedOperationException();
45 }
46
47 @Override
48 public ByteBuf capacity(int newCapacity) {
49 checkNewCapacity(newCapacity);
50
51 int oldCapacity = capacity();
52 if (newCapacity == oldCapacity) {
53 return this;
54 }
55
56 trimIndicesToCapacity(newCapacity);
57 setByteBuffer(reallocateDirect(cleanable, newCapacity), false);
58 return this;
59 }
60 }