(byte[] data, HpackEncoder encoder)
| 115 | } |
| 116 | |
| 117 | private byte[] encodeToFrames(byte[] data, HpackEncoder encoder) throws Exception { |
| 118 | ByteArrayOutputStream out = new ByteArrayOutputStream(); |
| 119 | Http http = Http.create(data); |
| 120 | int flags = Integer.valueOf(http.getFirstHeader("X-PacketProxy-HTTP2-Flags")); |
| 121 | if (http.getBody() != null && http.getBody().length > 0) { |
| 122 | |
| 123 | http.updateHeader("X-PacketProxy-HTTP2-Flags", |
| 124 | String.valueOf(flags & 0xff & ~HeadersFrame.FLAG_END_STREAM)); |
| 125 | HeadersFrame headersFrame = new HeadersFrame(http); |
| 126 | out.write(headersFrame.toByteArrayWithoutExtra(encoder)); |
| 127 | DataFrame dataFrame = new DataFrame(http); |
| 128 | out.write(dataFrame.toByteArrayWithoutExtra()); |
| 129 | } else { |
| 130 | |
| 131 | http.updateHeader("X-PacketProxy-HTTP2-Flags", String.valueOf(flags & 0xff | HeadersFrame.FLAG_END_STREAM)); |
| 132 | HeadersFrame headersFrame = new HeadersFrame(http); |
| 133 | out.write(headersFrame.toByteArrayWithoutExtra(encoder)); |
| 134 | } |
| 135 | return out.toByteArray(); |
| 136 | } |
| 137 | |
| 138 | /* key: streamId, value: groupId */ |
| 139 | private Map<Long, Long> groupMap = new HashMap<>(); |
no test coverage detected