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