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.PlatformDependent;
19
20
21
22
23
24
25 public class UnpooledUnsafeHeapByteBuf extends UnpooledHeapByteBuf {
26
27
28
29
30
31
32
33 public UnpooledUnsafeHeapByteBuf(ByteBufAllocator alloc, int initialCapacity, int maxCapacity) {
34 super(alloc, initialCapacity, maxCapacity);
35 }
36
37 @Override
38 protected byte[] allocateArray(int initialCapacity) {
39 return PlatformDependent.allocateUninitializedArray(initialCapacity);
40 }
41
42 @Override
43 public byte getByte(int index) {
44 checkIndex(index);
45 return _getByte(index);
46 }
47
48 @Override
49 protected byte _getByte(int index) {
50 return UnsafeByteBufUtil.getByte(array, index);
51 }
52
53 @Override
54 public short getShort(int index) {
55 checkIndex(index, 2);
56 return _getShort(index);
57 }
58
59 @Override
60 protected short _getShort(int index) {
61 return UnsafeByteBufUtil.getShort(array, index);
62 }
63
64 @Override
65 public short getShortLE(int index) {
66 checkIndex(index, 2);
67 return _getShortLE(index);
68 }
69
70 @Override
71 protected short _getShortLE(int index) {
72 return UnsafeByteBufUtil.getShortLE(array, index);
73 }
74
75 @Override
76 public int getUnsignedMedium(int index) {
77 checkIndex(index, 3);
78 return _getUnsignedMedium(index);
79 }
80
81 @Override
82 protected int _getUnsignedMedium(int index) {
83 return UnsafeByteBufUtil.getUnsignedMedium(array, index);
84 }
85
86 @Override
87 public int getUnsignedMediumLE(int index) {
88 checkIndex(index, 3);
89 return _getUnsignedMediumLE(index);
90 }
91
92 @Override
93 protected int _getUnsignedMediumLE(int index) {
94 return UnsafeByteBufUtil.getUnsignedMediumLE(array, index);
95 }
96
97 @Override
98 public int getInt(int index) {
99 checkIndex(index, 4);
100 return _getInt(index);
101 }
102
103 @Override
104 protected int _getInt(int index) {
105 return UnsafeByteBufUtil.getInt(array, index);
106 }
107
108 @Override
109 public int getIntLE(int index) {
110 checkIndex(index, 4);
111 return _getIntLE(index);
112 }
113
114 @Override
115 protected int _getIntLE(int index) {
116 return UnsafeByteBufUtil.getIntLE(array, index);
117 }
118
119 @Override
120 public long getLong(int index) {
121 checkIndex(index, 8);
122 return _getLong(index);
123 }
124
125 @Override
126 protected long _getLong(int index) {
127 return UnsafeByteBufUtil.getLong(array, index);
128 }
129
130 @Override
131 public long getLongLE(int index) {
132 checkIndex(index, 8);
133 return _getLongLE(index);
134 }
135
136 @Override
137 protected long _getLongLE(int index) {
138 return UnsafeByteBufUtil.getLongLE(array, index);
139 }
140
141 @Override
142 public ByteBuf setByte(int index, int value) {
143 checkIndex(index);
144 _setByte(index, value);
145 return this;
146 }
147
148 @Override
149 protected void _setByte(int index, int value) {
150 UnsafeByteBufUtil.setByte(array, index, value);
151 }
152
153 @Override
154 public ByteBuf setShort(int index, int value) {
155 checkIndex(index, 2);
156 _setShort(index, value);
157 return this;
158 }
159
160 @Override
161 protected void _setShort(int index, int value) {
162 UnsafeByteBufUtil.setShort(array, index, value);
163 }
164
165 @Override
166 public ByteBuf setShortLE(int index, int value) {
167 checkIndex(index, 2);
168 _setShortLE(index, value);
169 return this;
170 }
171
172 @Override
173 protected void _setShortLE(int index, int value) {
174 UnsafeByteBufUtil.setShortLE(array, index, value);
175 }
176
177 @Override
178 public ByteBuf setMedium(int index, int value) {
179 checkIndex(index, 3);
180 _setMedium(index, value);
181 return this;
182 }
183
184 @Override
185 protected void _setMedium(int index, int value) {
186 UnsafeByteBufUtil.setMedium(array, index, value);
187 }
188
189 @Override
190 public ByteBuf setMediumLE(int index, int value) {
191 checkIndex(index, 3);
192 _setMediumLE(index, value);
193 return this;
194 }
195
196 @Override
197 protected void _setMediumLE(int index, int value) {
198 UnsafeByteBufUtil.setMediumLE(array, index, value);
199 }
200
201 @Override
202 public ByteBuf setInt(int index, int value) {
203 checkIndex(index, 4);
204 _setInt(index, value);
205 return this;
206 }
207
208 @Override
209 protected void _setInt(int index, int value) {
210 UnsafeByteBufUtil.setInt(array, index, value);
211 }
212
213 @Override
214 public ByteBuf setIntLE(int index, int value) {
215 checkIndex(index, 4);
216 _setIntLE(index, value);
217 return this;
218 }
219
220 @Override
221 protected void _setIntLE(int index, int value) {
222 UnsafeByteBufUtil.setIntLE(array, index, value);
223 }
224
225 @Override
226 public ByteBuf setLong(int index, long value) {
227 checkIndex(index, 8);
228 _setLong(index, value);
229 return this;
230 }
231
232 @Override
233 protected void _setLong(int index, long value) {
234 UnsafeByteBufUtil.setLong(array, index, value);
235 }
236
237 @Override
238 public ByteBuf setLongLE(int index, long value) {
239 checkIndex(index, 8);
240 _setLongLE(index, value);
241 return this;
242 }
243
244 @Override
245 protected void _setLongLE(int index, long value) {
246 UnsafeByteBufUtil.setLongLE(array, index, value);
247 }
248
249 @Override
250 public ByteBuf setZero(int index, int length) {
251 if (PlatformDependent.javaVersion() >= 7) {
252
253 checkIndex(index, length);
254 UnsafeByteBufUtil.setZero(array, index, length);
255 return this;
256 }
257 return super.setZero(index, length);
258 }
259
260 @Override
261 public ByteBuf writeZero(int length) {
262 if (PlatformDependent.javaVersion() >= 7) {
263
264 ensureWritable(length);
265 int wIndex = writerIndex;
266 UnsafeByteBufUtil.setZero(array, wIndex, length);
267 writerIndex = wIndex + length;
268 return this;
269 }
270 return super.writeZero(length);
271 }
272
273 @Override
274 @Deprecated
275 protected SwappedByteBuf newSwappedByteBuf() {
276 if (PlatformDependent.isUnaligned()) {
277
278 return new UnsafeHeapSwappedByteBuf(this);
279 }
280 return super.newSwappedByteBuf();
281 }
282 }