Add ByteBuf.maxWritableBytes()

- Fixes #806
This commit is contained in:
Trustin Lee 2012-12-14 11:49:01 +09:00
parent 9e973bbffc
commit 8e1a6c6cf5
4 changed files with 85 additions and 0 deletions

View File

@ -1,3 +1,19 @@
/*
* Copyright 2012 The Netty Project
*
* The Netty Project licenses this file to you under the Apache License,
* version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
/* /*
* Copyright 2012 The Netty Project * Copyright 2012 The Netty Project
* *
@ -124,6 +140,11 @@ public abstract class AbstractByteBuf implements ByteBuf {
return capacity() - writerIndex; return capacity() - writerIndex;
} }
@Override
public int maxWritableBytes() {
return maxCapacity() - writerIndex;
}
@Override @Override
public ByteBuf markReaderIndex() { public ByteBuf markReaderIndex() {
markedReaderIndex = readerIndex; markedReaderIndex = readerIndex;

View File

@ -1,3 +1,19 @@
/*
* Copyright 2012 The Netty Project
*
* The Netty Project licenses this file to you under the Apache License,
* version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
/* /*
* Copyright 2012 The Netty Project * Copyright 2012 The Netty Project
* *
@ -380,6 +396,12 @@ public interface ByteBuf extends ChannelBuf, Comparable<ByteBuf> {
*/ */
int writableBytes(); int writableBytes();
/**
* Returns the maximum possible number of writable bytes, which is equal to
* {@code (this.maxCapacity - this.writerIndex)}.
*/
int maxWritableBytes();
/** /**
* Returns {@code true} * Returns {@code true}
* if and only if {@code (this.writerIndex - this.readerIndex)} is greater * if and only if {@code (this.writerIndex - this.readerIndex)} is greater

View File

@ -1,3 +1,19 @@
/*
* Copyright 2012 The Netty Project
*
* The Netty Project licenses this file to you under the Apache License,
* version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
/* /*
* Copyright 2012 The Netty Project * Copyright 2012 The Netty Project
* *
@ -131,6 +147,11 @@ public final class SwappedByteBuf implements ByteBuf {
return buf.writableBytes(); return buf.writableBytes();
} }
@Override
public int maxWritableBytes() {
return buf.maxWritableBytes();
}
@Override @Override
public boolean readable() { public boolean readable() {
return buf.readable(); return buf.readable();

View File

@ -1,3 +1,19 @@
/*
* Copyright 2012 The Netty Project
*
* The Netty Project licenses this file to you under the Apache License,
* version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
/* /*
* Copyright 2012 The Netty Project * Copyright 2012 The Netty Project
* *
@ -731,6 +747,11 @@ final class ReplayingDecoderBuffer implements ByteBuf, Unsafe {
return 0; return 0;
} }
@Override
public int maxWritableBytes() {
return 0;
}
@Override @Override
public ByteBuf writeBoolean(boolean value) { public ByteBuf writeBoolean(boolean value) {
throw new UnreplayableOperationException(); throw new UnreplayableOperationException();