1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.http2.generator;
20
21 import java.nio.ByteBuffer;
22
23 import org.eclipse.jetty.http2.frames.Frame;
24 import org.eclipse.jetty.http2.frames.FrameType;
25 import org.eclipse.jetty.io.ByteBufferPool;
26
27 public class HeaderGenerator
28 {
29 private int maxFrameSize = Frame.DEFAULT_MAX_LENGTH;
30
31 public ByteBuffer generate(ByteBufferPool.Lease lease, FrameType frameType, int capacity, int length, int flags, int streamId)
32 {
33 ByteBuffer header = lease.acquire(capacity, true);
34 header.put((byte)((length & 0x00_FF_00_00) >>> 16));
35 header.put((byte)((length & 0x00_00_FF_00) >>> 8));
36 header.put((byte)((length & 0x00_00_00_FF)));
37 header.put((byte)frameType.getType());
38 header.put((byte)flags);
39 header.putInt(streamId);
40 return header;
41 }
42
43 public int getMaxFrameSize()
44 {
45 return maxFrameSize;
46 }
47
48 public void setMaxFrameSize(int maxFrameSize)
49 {
50 this.maxFrameSize = maxFrameSize;
51 }
52 }