1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.eclipse.jetty.spdy.generator;
18
19 import java.nio.ByteBuffer;
20
21 import org.eclipse.jetty.spdy.ByteBufferPool;
22 import org.eclipse.jetty.spdy.frames.ControlFrame;
23
24 public abstract class ControlFrameGenerator
25 {
26 private final ByteBufferPool bufferPool;
27
28 protected ControlFrameGenerator(ByteBufferPool bufferPool)
29 {
30 this.bufferPool = bufferPool;
31 }
32
33 protected ByteBufferPool getByteBufferPool()
34 {
35 return bufferPool;
36 }
37
38 public abstract ByteBuffer generate(ControlFrame frame);
39
40 protected void generateControlFrameHeader(ControlFrame frame, int frameLength, ByteBuffer buffer)
41 {
42 buffer.putShort((short)(0x8000 + frame.getVersion()));
43 buffer.putShort(frame.getType().getCode());
44 int flagsAndLength = frame.getFlags();
45 flagsAndLength <<= 24;
46 flagsAndLength += frameLength;
47 buffer.putInt(flagsAndLength);
48 }
49 }