1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.jboss.netty.buffer;
17
18 import java.io.IOException;
19 import java.io.InputStream;
20 import java.io.OutputStream;
21 import java.nio.ByteBuffer;
22 import java.nio.ByteOrder;
23 import java.nio.channels.GatheringByteChannel;
24 import java.nio.channels.ScatteringByteChannel;
25
26
27
28
29
30
31
32
33
34
35
36
37
38 public class DuplicatedChannelBuffer extends AbstractChannelBuffer implements WrappedChannelBuffer {
39
40 private final ChannelBuffer buffer;
41
42 public DuplicatedChannelBuffer(ChannelBuffer buffer) {
43 if (buffer == null) {
44 throw new NullPointerException("buffer");
45 }
46 this.buffer = buffer;
47 setIndex(buffer.readerIndex(), buffer.writerIndex());
48 }
49
50 private DuplicatedChannelBuffer(DuplicatedChannelBuffer buffer) {
51 this.buffer = buffer.buffer;
52 setIndex(buffer.readerIndex(), buffer.writerIndex());
53 }
54
55 public ChannelBuffer unwrap() {
56 return buffer;
57 }
58
59 public ChannelBufferFactory factory() {
60 return buffer.factory();
61 }
62
63 public ByteOrder order() {
64 return buffer.order();
65 }
66
67 public boolean isDirect() {
68 return buffer.isDirect();
69 }
70
71 public int capacity() {
72 return buffer.capacity();
73 }
74
75 public boolean hasArray() {
76 return buffer.hasArray();
77 }
78
79 public byte[] array() {
80 return buffer.array();
81 }
82
83 public int arrayOffset() {
84 return buffer.arrayOffset();
85 }
86
87 public byte getByte(int index) {
88 return buffer.getByte(index);
89 }
90
91 public short getShort(int index) {
92 return buffer.getShort(index);
93 }
94
95 public int getUnsignedMedium(int index) {
96 return buffer.getUnsignedMedium(index);
97 }
98
99 public int getInt(int index) {
100 return buffer.getInt(index);
101 }
102
103 public long getLong(int index) {
104 return buffer.getLong(index);
105 }
106
107 public ChannelBuffer duplicate() {
108 return new DuplicatedChannelBuffer(this);
109 }
110
111 public ChannelBuffer copy(int index, int length) {
112 return buffer.copy(index, length);
113 }
114
115 public ChannelBuffer slice(int index, int length) {
116 return buffer.slice(index, length);
117 }
118
119 public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) {
120 buffer.getBytes(index, dst, dstIndex, length);
121 }
122
123 public void getBytes(int index, byte[] dst, int dstIndex, int length) {
124 buffer.getBytes(index, dst, dstIndex, length);
125 }
126
127 public void getBytes(int index, ByteBuffer dst) {
128 buffer.getBytes(index, dst);
129 }
130
131 public void setByte(int index, int value) {
132 buffer.setByte(index, value);
133 }
134
135 public void setShort(int index, int value) {
136 buffer.setShort(index, value);
137 }
138
139 public void setMedium(int index, int value) {
140 buffer.setMedium(index, value);
141 }
142
143 public void setInt(int index, int value) {
144 buffer.setInt(index, value);
145 }
146
147 public void setLong(int index, long value) {
148 buffer.setLong(index, value);
149 }
150
151 public void setBytes(int index, byte[] src, int srcIndex, int length) {
152 buffer.setBytes(index, src, srcIndex, length);
153 }
154
155 public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) {
156 buffer.setBytes(index, src, srcIndex, length);
157 }
158
159 public void setBytes(int index, ByteBuffer src) {
160 buffer.setBytes(index, src);
161 }
162
163 public void getBytes(int index, OutputStream out, int length)
164 throws IOException {
165 buffer.getBytes(index, out, length);
166 }
167
168 public int getBytes(int index, GatheringByteChannel out, int length)
169 throws IOException {
170 return buffer.getBytes(index, out, length);
171 }
172
173 public int setBytes(int index, InputStream in, int length)
174 throws IOException {
175 return buffer.setBytes(index, in, length);
176 }
177
178 public int setBytes(int index, ScatteringByteChannel in, int length)
179 throws IOException {
180 return buffer.setBytes(index, in, length);
181 }
182
183 public ByteBuffer toByteBuffer(int index, int length) {
184 return buffer.toByteBuffer(index, length);
185 }
186 }