1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.io;
20
21
22
23
24
25
26
27
28 public class View extends AbstractBuffer
29 {
30 Buffer _buffer;
31
32
33
34
35
36
37
38
39 public View(Buffer buffer, int mark, int get, int put,int access)
40 {
41 super(READWRITE,!buffer.isImmutable());
42 _buffer=buffer.buffer();
43 setPutIndex(put);
44 setGetIndex(get);
45 setMarkIndex(mark);
46 _access=access;
47 }
48
49 public View(Buffer buffer)
50 {
51 super(READWRITE,!buffer.isImmutable());
52 _buffer=buffer.buffer();
53 setPutIndex(buffer.putIndex());
54 setGetIndex(buffer.getIndex());
55 setMarkIndex(buffer.markIndex());
56 _access=buffer.isReadOnly()?READONLY:READWRITE;
57 }
58
59 public View()
60 {
61 super(READWRITE,true);
62 }
63
64
65
66
67 public void update(Buffer buffer)
68 {
69 _access=READWRITE;
70 _buffer=buffer.buffer();
71 setGetIndex(0);
72 setPutIndex(buffer.putIndex());
73 setGetIndex(buffer.getIndex());
74 setMarkIndex(buffer.markIndex());
75 _access=buffer.isReadOnly()?READONLY:READWRITE;
76 }
77
78 public void update(int get, int put)
79 {
80 int a=_access;
81 _access=READWRITE;
82 setGetIndex(0);
83 setPutIndex(put);
84 setGetIndex(get);
85 setMarkIndex(-1);
86 _access=a;
87 }
88
89
90
91
92 public byte[] array()
93 {
94 return _buffer.array();
95 }
96
97
98
99
100 @Override
101 public Buffer buffer()
102 {
103 return _buffer.buffer();
104 }
105
106
107
108
109 public int capacity()
110 {
111 return _buffer.capacity();
112 }
113
114
115
116
117 @Override
118 public void clear()
119 {
120 setMarkIndex(-1);
121 setGetIndex(0);
122 setPutIndex(_buffer.getIndex());
123 setGetIndex(_buffer.getIndex());
124 }
125
126
127
128
129 @Override
130 public void compact()
131 {
132
133 }
134
135
136
137
138
139
140 @Override
141 public boolean equals(Object obj)
142 {
143 return this==obj ||((obj instanceof Buffer)&& obj.equals(this)) || super.equals(obj);
144 }
145
146
147
148
149 @Override
150 public boolean isReadOnly()
151 {
152 return _buffer.isReadOnly();
153 }
154
155
156
157
158 @Override
159 public boolean isVolatile()
160 {
161 return true;
162 }
163
164
165
166
167 public byte peek(int index)
168 {
169 return _buffer.peek(index);
170 }
171
172
173
174
175 public int peek(int index, byte[] b, int offset, int length)
176 {
177 return _buffer.peek(index,b,offset,length);
178 }
179
180
181
182
183 @Override
184 public Buffer peek(int index, int length)
185 {
186 return _buffer.peek(index, length);
187 }
188
189
190
191
192
193 @Override
194 public int poke(int index, Buffer src)
195 {
196 return _buffer.poke(index,src);
197 }
198
199
200
201
202
203 public void poke(int index, byte b)
204 {
205 _buffer.poke(index,b);
206 }
207
208
209
210
211
212
213
214 @Override
215 public int poke(int index, byte[] b, int offset, int length)
216 {
217 return _buffer.poke(index,b,offset,length);
218 }
219
220 @Override
221 public String toString()
222 {
223 if (_buffer==null)
224 return "INVALID";
225 return super.toString();
226 }
227
228 public static class CaseInsensitive extends View implements Buffer.CaseInsensitve
229 {
230 public CaseInsensitive()
231 {
232 super();
233 }
234
235 public CaseInsensitive(Buffer buffer, int mark, int get, int put, int access)
236 {
237 super(buffer,mark,get,put,access);
238 }
239
240 public CaseInsensitive(Buffer buffer)
241 {
242 super(buffer);
243 }
244
245 @Override
246 public boolean equals(Object obj)
247 {
248 return this==obj ||((obj instanceof Buffer)&&((Buffer)obj).equalsIgnoreCase(this)) || super.equals(obj);
249 }
250 }
251 }