1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.apache.hc.core5.http2.frame;
29
30 import java.nio.ByteBuffer;
31
32 import org.apache.hc.core5.util.Args;
33
34
35
36
37
38
39 public class DefaultFrameFactory extends FrameFactory {
40
41 public static final FrameFactory INSTANCE = new DefaultFrameFactory();
42
43 @Override
44 public RawFrame createHeaders(final int streamId, final ByteBuffer payload, final boolean endHeaders, final boolean endStream) {
45 Args.positive(streamId, "Stream id");
46 final int flags = (endHeaders ? FrameFlag.END_HEADERS.value : 0) | (endStream ? FrameFlag.END_STREAM.value : 0);
47 return new RawFrame(FrameType.HEADERS.getValue(), flags, streamId, payload);
48 }
49
50 @Override
51 public RawFrame createContinuation(final int streamId, final ByteBuffer payload, final boolean endHeaders) {
52 Args.positive(streamId, "Stream id");
53 final int flags = (endHeaders ? FrameFlag.END_HEADERS.value : 0);
54 return new RawFrame(FrameType.CONTINUATION.getValue(), flags, streamId, payload);
55 }
56
57 @Override
58 public RawFrame createPushPromise(final int streamId, final ByteBuffer payload, final boolean endHeaders) {
59 Args.positive(streamId, "Stream id");
60 final int flags = (endHeaders ? FrameFlag.END_HEADERS.value : 0);
61 return new RawFrame(FrameType.PUSH_PROMISE.getValue(), flags, streamId, payload);
62 }
63
64 @Override
65 public RawFrame createData(final int streamId, final ByteBuffer payload, final boolean endStream) {
66 Args.positive(streamId, "Stream id");
67 final int flags = (endStream ? FrameFlag.END_STREAM.value : 0);
68 return new RawFrame(FrameType.DATA.getValue(), flags, streamId, payload);
69 }
70
71 }