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 import org.eclipse.jetty.spdy.frames.WindowUpdateFrame;
24
25 public class WindowUpdateGenerator extends ControlFrameGenerator
26 {
27 public WindowUpdateGenerator(ByteBufferPool bufferPool)
28 {
29 super(bufferPool);
30 }
31
32 @Override
33 public ByteBuffer generate(ControlFrame frame)
34 {
35 WindowUpdateFrame windowUpdate = (WindowUpdateFrame)frame;
36
37 int frameBodyLength = 8;
38 int totalLength = ControlFrame.HEADER_LENGTH + frameBodyLength;
39 ByteBuffer buffer = getByteBufferPool().acquire(totalLength, true);
40 generateControlFrameHeader(windowUpdate, frameBodyLength, buffer);
41
42 buffer.putInt(windowUpdate.getStreamId() & 0x7F_FF_FF_FF);
43 buffer.putInt(windowUpdate.getWindowDelta() & 0x7F_FF_FF_FF);
44
45 buffer.flip();
46 return buffer;
47 }
48 }