1 package org.eclipse.jetty.websocket;
2
3 import org.eclipse.jetty.io.Buffer;
4 import org.eclipse.jetty.io.ByteArrayBuffer;
5 import org.eclipse.jetty.io.ThreadLocalBuffers;
6 import org.eclipse.jetty.io.nio.DirectNIOBuffer;
7 import org.eclipse.jetty.io.nio.IndirectNIOBuffer;
8
9
10
11
12
13
14
15
16
17
18 public class WebSocketBuffers
19 {
20 final private int _bufferSize;
21 final private ThreadLocalBuffers _buffers;
22
23 public WebSocketBuffers(final int bufferSize)
24 {
25 _bufferSize=bufferSize;
26 _buffers = new ThreadLocalBuffers()
27 {
28 @Override
29 protected Buffer newHeader(int size)
30 {
31 return new DirectNIOBuffer(bufferSize);
32 }
33
34 @Override
35 protected Buffer newBuffer(int size)
36 {
37 return new IndirectNIOBuffer(bufferSize);
38 }
39
40 @Override
41 protected boolean isHeader(Buffer buffer)
42 {
43 return buffer instanceof DirectNIOBuffer;
44 }
45 };
46 }
47
48 public Buffer getBuffer()
49 {
50 return _buffers.getBuffer();
51 }
52
53 public Buffer getDirectBuffer()
54 {
55 return _buffers.getHeader();
56 }
57
58 public void returnBuffer(Buffer buffer)
59 {
60 _buffers.returnBuffer(buffer);
61 }
62
63 public int getBufferSize()
64 {
65 return _bufferSize;
66 }
67 }