public static String encodeSettings(io.vertx.core.http.Http2Settings settings) { Buffer buffer = Buffer.buffer(); fromVertxSettings(settings).forEach((c, l) -> { buffer.appendUnsignedShort(c); buffer.appendUnsignedInt(l); }); return Base64.getUrlEncoder().encodeToString(buffer.getBytes()); }
@Test public void testAppendUnsignedInt() { Buffer b = Buffer.buffer(TestUtils.randomByteArray(100)); b.appendUnsignedInt(Integer.MAX_VALUE + (long) Integer.MAX_VALUE / 2); assertEquals(104, b.length()); b.appendUnsignedIntLE(Integer.MAX_VALUE + (long) Integer.MAX_VALUE / 2); assertEquals(108, b.length()); }
@Test public void testLE() { checkBEAndLE(2, Buffer.buffer().appendShort(Short.MAX_VALUE), Buffer.buffer().appendShortLE(Short.MAX_VALUE)); checkBEAndLE(2, Buffer.buffer().appendUnsignedShort(Short.MAX_VALUE), Buffer.buffer().appendUnsignedShortLE(Short.MAX_VALUE)); checkBEAndLE(3, Buffer.buffer().appendMedium(Integer.MAX_VALUE / 2), Buffer.buffer().appendMediumLE(Integer.MAX_VALUE / 2)); checkBEAndLE(4, Buffer.buffer().appendInt(Integer.MAX_VALUE), Buffer.buffer().appendIntLE(Integer.MAX_VALUE)); checkBEAndLE(4, Buffer.buffer().appendUnsignedInt(Integer.MAX_VALUE), Buffer.buffer().appendUnsignedIntLE(Integer.MAX_VALUE)); checkBEAndLE(8, Buffer.buffer().appendLong(Long.MAX_VALUE), Buffer.buffer().appendLongLE(Long.MAX_VALUE)); }
@Override public Collection<CharSequence> setUpgradeHeaders(ChannelHandlerContext ctx, HttpRequest upgradeRequest) { Http2Settings nettySettings = new Http2Settings(); HttpUtils.fromVertxInitialSettings(false, settings, nettySettings); Buffer buf = Buffer.buffer(); for (CharObjectMap.PrimitiveEntry<Long> entry : nettySettings.entries()) { buf.appendUnsignedShort(entry.key()); buf.appendUnsignedInt(entry.value()); } String encodedSettings = new String(java.util.Base64.getUrlEncoder().encode(buf.getBytes()), UTF_8); upgradeRequest.headers().set(HTTP_UPGRADE_SETTINGS_HEADER, encodedSettings); return UPGRADE_HEADERS; }
@Test public void testAppendUnsignedInt() { Buffer b = Buffer.buffer(TestUtils.randomByteArray(100)); b.appendUnsignedInt(Integer.MAX_VALUE + (long) Integer.MAX_VALUE / 2); assertEquals(104, b.length()); b.appendUnsignedIntLE(Integer.MAX_VALUE + (long) Integer.MAX_VALUE / 2); assertEquals(108, b.length()); }
public static String encodeSettings(io.vertx.core.http.Http2Settings settings) { Buffer buffer = Buffer.buffer(); fromVertxSettings(settings).forEach((c, l) -> { buffer.appendUnsignedShort(c); buffer.appendUnsignedInt(l); }); return Base64.getUrlEncoder().encodeToString(buffer.getBytes()); }
@Test public void testLE() { checkBEAndLE(2, Buffer.buffer().appendShort(Short.MAX_VALUE), Buffer.buffer().appendShortLE(Short.MAX_VALUE)); checkBEAndLE(2, Buffer.buffer().appendUnsignedShort(Short.MAX_VALUE), Buffer.buffer().appendUnsignedShortLE(Short.MAX_VALUE)); checkBEAndLE(3, Buffer.buffer().appendMedium(Integer.MAX_VALUE / 2), Buffer.buffer().appendMediumLE(Integer.MAX_VALUE / 2)); checkBEAndLE(4, Buffer.buffer().appendInt(Integer.MAX_VALUE), Buffer.buffer().appendIntLE(Integer.MAX_VALUE)); checkBEAndLE(4, Buffer.buffer().appendUnsignedInt(Integer.MAX_VALUE), Buffer.buffer().appendUnsignedIntLE(Integer.MAX_VALUE)); checkBEAndLE(8, Buffer.buffer().appendLong(Long.MAX_VALUE), Buffer.buffer().appendLongLE(Long.MAX_VALUE)); }
@Override public Collection<CharSequence> setUpgradeHeaders(ChannelHandlerContext ctx, HttpRequest upgradeRequest) { Http2Settings nettySettings = new Http2Settings(); HttpUtils.fromVertxInitialSettings(false, settings, nettySettings); Buffer buf = Buffer.buffer(); for (CharObjectMap.PrimitiveEntry<Long> entry : nettySettings.entries()) { buf.appendUnsignedShort(entry.key()); buf.appendUnsignedInt(entry.value()); } String encodedSettings = new String(java.util.Base64.getUrlEncoder().encode(buf.getBytes()), UTF_8); upgradeRequest.headers().set(HTTP_UPGRADE_SETTINGS_HEADER, encodedSettings); return UPGRADE_HEADERS; }
/** * Appends the specified unsigned <code>int</code> to the end of the Buffer. The buffer will expand as necessary to accommodate any bytes written.<p> * Returns a reference to <code>this</code> so multiple operations can be appended together. * @param i * @return */ public io.vertx.rxjava.core.buffer.Buffer appendUnsignedInt(long i) { delegate.appendUnsignedInt(i); return this; }
/** * Appends the specified unsigned <code>int</code> to the end of the Buffer. The buffer will expand as necessary to accommodate any bytes written.<p> * Returns a reference to <code>this</code> so multiple operations can be appended together. * @param i * @return */ public io.vertx.rxjava.core.buffer.Buffer appendUnsignedInt(long i) { delegate.appendUnsignedInt(i); return this; }