< prev index next >
src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/internal/common/Utils.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 462,475 ****
public static final ByteBuffer EMPTY_BYTEBUFFER = ByteBuffer.allocate(0);
public static final ByteBuffer[] EMPTY_BB_ARRAY = new ByteBuffer[0];
public static final List<ByteBuffer> EMPTY_BB_LIST = List.of();
public static final ByteBufferReference[] EMPTY_BBR_ARRAY = new ByteBufferReference[0];
! public static ByteBuffer slice(ByteBuffer buffer, int amount) {
ByteBuffer newb = buffer.slice();
! newb.limit(amount);
! buffer.position(buffer.position() + amount);
return newb;
}
/**
* Get the Charset from the Content-encoding header. Defaults to
--- 462,493 ----
public static final ByteBuffer EMPTY_BYTEBUFFER = ByteBuffer.allocate(0);
public static final ByteBuffer[] EMPTY_BB_ARRAY = new ByteBuffer[0];
public static final List<ByteBuffer> EMPTY_BB_LIST = List.of();
public static final ByteBufferReference[] EMPTY_BBR_ARRAY = new ByteBufferReference[0];
! /**
! * Returns a slice of size {@code amount} from the given buffer. If the
! * buffer contains more data than {@code amount}, then the slice's capacity
! * ( and, but not just, its limit ) is set to {@code amount}. If the buffer
! * does not contain more data than {@code amount}, then the slice's capacity
! * will be the same as the given buffer's capacity.
! */
! public static ByteBuffer sliceWithLimitedCapacity(ByteBuffer buffer, int amount) {
! final int index = buffer.position() + amount;
! final int limit = buffer.limit();
! if (index != limit) {
! // additional data in the buffer
! buffer.limit(index); // ensures that the slice does not go beyond
! } else {
! // no additional data in the buffer
! buffer.limit(buffer.capacity()); // allows the slice full capacity
! }
!
ByteBuffer newb = buffer.slice();
! buffer.position(index);
! buffer.limit(limit); // restore the original buffer's limit
! newb.limit(amount); // slices limit to amount (capacity may be greater)
return newb;
}
/**
* Get the Charset from the Content-encoding header. Defaults to
< prev index next >