1
2
3
4
5
6
7
8
9
10
11
12
13
14 package org.eclipse.jetty.spdy.generator;
15
16 import java.nio.ByteBuffer;
17
18 import org.eclipse.jetty.spdy.ByteBufferPool;
19 import org.eclipse.jetty.spdy.frames.ControlFrame;
20 import org.eclipse.jetty.spdy.frames.RstStreamFrame;
21
22 public class RstStreamGenerator extends ControlFrameGenerator
23 {
24 public RstStreamGenerator(ByteBufferPool bufferPool)
25 {
26 super(bufferPool);
27 }
28
29 @Override
30 public ByteBuffer generate(ControlFrame frame)
31 {
32 RstStreamFrame rstStream = (RstStreamFrame)frame;
33
34 int frameBodyLength = 8;
35 int totalLength = ControlFrame.HEADER_LENGTH + frameBodyLength;
36 ByteBuffer buffer = getByteBufferPool().acquire(totalLength, true);
37 generateControlFrameHeader(rstStream, frameBodyLength, buffer);
38
39 buffer.putInt(rstStream.getStreamId() & 0x7F_FF_FF_FF);
40 buffer.putInt(rstStream.getStatusCode());
41
42 buffer.flip();
43 return buffer;
44 }
45 }