class DynamicCompositeByteBuf {

    public void skipBytes(int length) {
        if (length > readableBytes) {
            throw new IndexOutOfBoundsException("length > readableBytes");
        }
        if (length <= 0) {
            return;
        }
        while (length > 0 && readableBytes > 0) {
            ByteBuf first = buffers.peek();
            int firstLen = first.readableBytes();
            if (firstLen > length) {
                first.skipBytes(length);
                readableBytes -= length;
                length = 0;
            } else {
                readableBytes -= firstLen;
                length -= firstLen;
                buffers.removeFirst().release();
            }
        }
        return;
    }

    public  DynamicCompositeByteBuf();
    public  DynamicCompositeByteBuf(int capacity);
    public  DynamicCompositeByteBuf(ByteBuf buf);
    public  DynamicCompositeByteBuf(ByteBuf[] bufs, int offset, int len);

}