Package org.jboss.netty.buffer
Class ReadOnlyChannelBuffer
- java.lang.Object
-
- org.jboss.netty.buffer.AbstractChannelBuffer
-
- org.jboss.netty.buffer.ReadOnlyChannelBuffer
-
- All Implemented Interfaces:
java.lang.Comparable<ChannelBuffer>,ChannelBuffer,WrappedChannelBuffer
public class ReadOnlyChannelBuffer extends AbstractChannelBuffer implements WrappedChannelBuffer
A derived buffer which forbids any write requests to its parent. It is recommended to useChannelBuffers.unmodifiableBuffer(ChannelBuffer)instead of calling the constructor explicitly.
-
-
Field Summary
Fields Modifier and Type Field Description private ChannelBufferbuffer
-
Constructor Summary
Constructors Modifier Constructor Description ReadOnlyChannelBuffer(ChannelBuffer buffer)privateReadOnlyChannelBuffer(ReadOnlyChannelBuffer buffer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]array()Returns the backing byte array of this buffer.intarrayOffset()Returns the offset of the first byte within the backing byte array of this buffer.intcapacity()Returns the number of bytes (octets) this buffer can contain.ChannelBuffercopy(int index, int length)Returns a copy of this buffer's sub-region.voiddiscardReadBytes()Discards the bytes between the 0th index andreaderIndex.ChannelBufferduplicate()Returns a buffer which shares the whole region of this buffer.ChannelBufferFactoryfactory()Returns the factory which creates aChannelBufferwhose type and defaultByteOrderare same with this buffer.bytegetByte(int index)Gets a byte at the specified absoluteindexin this buffer.voidgetBytes(int index, byte[] dst, int dstIndex, int length)Transfers this buffer's data to the specified destination starting at the specified absoluteindex.voidgetBytes(int index, java.io.OutputStream out, int length)Transfers this buffer's data to the specified stream starting at the specified absoluteindex.voidgetBytes(int index, java.nio.ByteBuffer dst)Transfers this buffer's data to the specified destination starting at the specified absoluteindexuntil the destination's position reaches its limit.intgetBytes(int index, java.nio.channels.GatheringByteChannel out, int length)Transfers this buffer's data to the specified channel starting at the specified absoluteindex.voidgetBytes(int index, ChannelBuffer dst, int dstIndex, int length)Transfers this buffer's data to the specified destination starting at the specified absoluteindex.intgetInt(int index)Gets a 32-bit integer at the specified absoluteindexin this buffer.longgetLong(int index)Gets a 64-bit long integer at the specified absoluteindexin this buffer.shortgetShort(int index)Gets a 16-bit short integer at the specified absoluteindexin this buffer.intgetUnsignedMedium(int index)Gets an unsigned 24-bit medium integer at the specified absoluteindexin this buffer.booleanhasArray()Returnstrueif and only if this buffer has a backing byte array.booleanisDirect()Returnstrueif and only if this buffer is backed by an NIO direct buffer.java.nio.ByteOrderorder()Returns the endianness of this buffer.voidsetByte(int index, int value)Sets the specified byte at the specified absoluteindexin this buffer.voidsetBytes(int index, byte[] src, int srcIndex, int length)Transfers the specified source array's data to this buffer starting at the specified absoluteindex.intsetBytes(int index, java.io.InputStream in, int length)Transfers the content of the specified source stream to this buffer starting at the specified absoluteindex.voidsetBytes(int index, java.nio.ByteBuffer src)Transfers the specified source buffer's data to this buffer starting at the specified absoluteindexuntil the source buffer's position reaches its limit.intsetBytes(int index, java.nio.channels.ScatteringByteChannel in, int length)Transfers the content of the specified source channel to this buffer starting at the specified absoluteindex.voidsetBytes(int index, ChannelBuffer src, int srcIndex, int length)Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex.voidsetInt(int index, int value)Sets the specified 32-bit integer at the specified absoluteindexin this buffer.voidsetLong(int index, long value)Sets the specified 64-bit long integer at the specified absoluteindexin this buffer.voidsetMedium(int index, int value)Sets the specified 24-bit medium integer at the specified absoluteindexin this buffer.voidsetShort(int index, int value)Sets the specified 16-bit short integer at the specified absoluteindexin this buffer.ChannelBufferslice(int index, int length)Returns a slice of this buffer's sub-region.java.nio.ByteBuffertoByteBuffer(int index, int length)Converts this buffer's sub-region into a NIO buffer.java.nio.ByteBuffer[]toByteBuffers(int index, int length)Converts this buffer's sub-region into an array of NIO buffers.ChannelBufferunwrap()Returns this buffer's parent that this buffer is wrapping.-
Methods inherited from class org.jboss.netty.buffer.AbstractChannelBuffer
bytesBefore, bytesBefore, bytesBefore, bytesBefore, bytesBefore, bytesBefore, checkReadableBytes, clear, compareTo, copy, ensureWritableBytes, equals, getBytes, getBytes, getBytes, getChar, getDouble, getFloat, getMedium, getUnsignedByte, getUnsignedInt, getUnsignedShort, hashCode, indexOf, indexOf, markReaderIndex, markWriterIndex, readable, readableBytes, readByte, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readChar, readDouble, readerIndex, readerIndex, readFloat, readInt, readLong, readMedium, readShort, readSlice, readUnsignedByte, readUnsignedInt, readUnsignedMedium, readUnsignedShort, resetReaderIndex, resetWriterIndex, setBytes, setBytes, setBytes, setChar, setDouble, setFloat, setIndex, setZero, skipBytes, slice, toByteBuffer, toByteBuffers, toString, toString, toString, writable, writableBytes, writeByte, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeChar, writeDouble, writeFloat, writeInt, writeLong, writeMedium, writerIndex, writerIndex, writeShort, writeZero
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.jboss.netty.buffer.ChannelBuffer
bytesBefore, bytesBefore, bytesBefore, bytesBefore, bytesBefore, bytesBefore, clear, compareTo, copy, ensureWritableBytes, equals, getBytes, getBytes, getBytes, getChar, getDouble, getFloat, getMedium, getUnsignedByte, getUnsignedInt, getUnsignedShort, hashCode, indexOf, indexOf, markReaderIndex, markWriterIndex, readable, readableBytes, readByte, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readChar, readDouble, readerIndex, readerIndex, readFloat, readInt, readLong, readMedium, readShort, readSlice, readUnsignedByte, readUnsignedInt, readUnsignedMedium, readUnsignedShort, resetReaderIndex, resetWriterIndex, setBytes, setBytes, setBytes, setChar, setDouble, setFloat, setIndex, setZero, skipBytes, slice, toByteBuffer, toByteBuffers, toString, toString, toString, writable, writableBytes, writeByte, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeChar, writeDouble, writeFloat, writeInt, writeLong, writeMedium, writerIndex, writerIndex, writeShort, writeZero
-
-
-
-
Field Detail
-
buffer
private final ChannelBuffer buffer
-
-
Constructor Detail
-
ReadOnlyChannelBuffer
public ReadOnlyChannelBuffer(ChannelBuffer buffer)
-
ReadOnlyChannelBuffer
private ReadOnlyChannelBuffer(ReadOnlyChannelBuffer buffer)
-
-
Method Detail
-
unwrap
public ChannelBuffer unwrap()
Description copied from interface:WrappedChannelBufferReturns this buffer's parent that this buffer is wrapping.- Specified by:
unwrapin interfaceWrappedChannelBuffer
-
factory
public ChannelBufferFactory factory()
Description copied from interface:ChannelBufferReturns the factory which creates aChannelBufferwhose type and defaultByteOrderare same with this buffer.- Specified by:
factoryin interfaceChannelBuffer
-
order
public java.nio.ByteOrder order()
Description copied from interface:ChannelBufferReturns the endianness of this buffer.- Specified by:
orderin interfaceChannelBuffer
-
isDirect
public boolean isDirect()
Description copied from interface:ChannelBufferReturnstrueif and only if this buffer is backed by an NIO direct buffer.- Specified by:
isDirectin interfaceChannelBuffer
-
hasArray
public boolean hasArray()
Description copied from interface:ChannelBufferReturnstrueif and only if this buffer has a backing byte array. If this method returns true, you can safely callChannelBuffer.array()andChannelBuffer.arrayOffset().- Specified by:
hasArrayin interfaceChannelBuffer
-
array
public byte[] array()
Description copied from interface:ChannelBufferReturns the backing byte array of this buffer.- Specified by:
arrayin interfaceChannelBuffer
-
arrayOffset
public int arrayOffset()
Description copied from interface:ChannelBufferReturns the offset of the first byte within the backing byte array of this buffer.- Specified by:
arrayOffsetin interfaceChannelBuffer
-
discardReadBytes
public void discardReadBytes()
Description copied from interface:ChannelBufferDiscards the bytes between the 0th index andreaderIndex. It moves the bytes betweenreaderIndexandwriterIndexto the 0th index, and setsreaderIndexandwriterIndexto0andoldWriterIndex - oldReaderIndexrespectively.Please refer to the class documentation for more detailed explanation.
- Specified by:
discardReadBytesin interfaceChannelBuffer- Overrides:
discardReadBytesin classAbstractChannelBuffer
-
setByte
public void setByte(int index, int value)Description copied from interface:ChannelBufferSets the specified byte at the specified absoluteindexin this buffer. The 24 high-order bits of the specified value are ignored. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
setBytein interfaceChannelBuffer
-
setBytes
public void setBytes(int index, ChannelBuffer src, int srcIndex, int length)Description copied from interface:ChannelBufferTransfers the specified source buffer's data to this buffer starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof both the source (i.e.this) and the destination.- Specified by:
setBytesin interfaceChannelBuffersrcIndex- the first index of the sourcelength- the number of bytes to transfer
-
setBytes
public void setBytes(int index, byte[] src, int srcIndex, int length)Description copied from interface:ChannelBufferTransfers the specified source array's data to this buffer starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
setBytesin interfaceChannelBuffer
-
setBytes
public void setBytes(int index, java.nio.ByteBuffer src)Description copied from interface:ChannelBufferTransfers the specified source buffer's data to this buffer starting at the specified absoluteindexuntil the source buffer's position reaches its limit. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
setBytesin interfaceChannelBuffer
-
setShort
public void setShort(int index, int value)Description copied from interface:ChannelBufferSets the specified 16-bit short integer at the specified absoluteindexin this buffer. The 16 high-order bits of the specified value are ignored. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
setShortin interfaceChannelBuffer
-
setMedium
public void setMedium(int index, int value)Description copied from interface:ChannelBufferSets the specified 24-bit medium integer at the specified absoluteindexin this buffer. Please note that the most significant byte is ignored in the specified value. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
setMediumin interfaceChannelBuffer
-
setInt
public void setInt(int index, int value)Description copied from interface:ChannelBufferSets the specified 32-bit integer at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
setIntin interfaceChannelBuffer
-
setLong
public void setLong(int index, long value)Description copied from interface:ChannelBufferSets the specified 64-bit long integer at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
setLongin interfaceChannelBuffer
-
setBytes
public int setBytes(int index, java.io.InputStream in, int length) throws java.io.IOExceptionDescription copied from interface:ChannelBufferTransfers the content of the specified source stream to this buffer starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
setBytesin interfaceChannelBufferlength- the number of bytes to transfer- Returns:
- the actual number of bytes read in from the specified channel.
-1if the specified channel is closed. - Throws:
java.io.IOException- if the specified stream threw an exception during I/O
-
setBytes
public int setBytes(int index, java.nio.channels.ScatteringByteChannel in, int length) throws java.io.IOExceptionDescription copied from interface:ChannelBufferTransfers the content of the specified source channel to this buffer starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
setBytesin interfaceChannelBufferlength- the maximum number of bytes to transfer- Returns:
- the actual number of bytes read in from the specified channel.
-1if the specified channel is closed. - Throws:
java.io.IOException- if the specified channel threw an exception during I/O
-
getBytes
public int getBytes(int index, java.nio.channels.GatheringByteChannel out, int length) throws java.io.IOExceptionDescription copied from interface:ChannelBufferTransfers this buffer's data to the specified channel starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
getBytesin interfaceChannelBufferlength- the maximum number of bytes to transfer- Returns:
- the actual number of bytes written out to the specified channel
- Throws:
java.io.IOException- if the specified channel threw an exception during I/O
-
getBytes
public void getBytes(int index, java.io.OutputStream out, int length) throws java.io.IOExceptionDescription copied from interface:ChannelBufferTransfers this buffer's data to the specified stream starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
getBytesin interfaceChannelBufferlength- the number of bytes to transfer- Throws:
java.io.IOException- if the specified stream threw an exception during I/O
-
getBytes
public void getBytes(int index, byte[] dst, int dstIndex, int length)Description copied from interface:ChannelBufferTransfers this buffer's data to the specified destination starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
getBytesin interfaceChannelBufferdstIndex- the first index of the destinationlength- the number of bytes to transfer
-
getBytes
public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length)Description copied from interface:ChannelBufferTransfers this buffer's data to the specified destination starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof both the source (i.e.this) and the destination.- Specified by:
getBytesin interfaceChannelBufferdstIndex- the first index of the destinationlength- the number of bytes to transfer
-
getBytes
public void getBytes(int index, java.nio.ByteBuffer dst)Description copied from interface:ChannelBufferTransfers this buffer's data to the specified destination starting at the specified absoluteindexuntil the destination's position reaches its limit. This method does not modifyreaderIndexorwriterIndexof this buffer while the destination'spositionwill be increased.- Specified by:
getBytesin interfaceChannelBuffer
-
duplicate
public ChannelBuffer duplicate()
Description copied from interface:ChannelBufferReturns a buffer which shares the whole region of this buffer. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method is identical tobuf.slice(0, buf.capacity()). This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
duplicatein interfaceChannelBuffer
-
copy
public ChannelBuffer copy(int index, int length)
Description copied from interface:ChannelBufferReturns a copy of this buffer's sub-region. Modifying the content of the returned buffer or this buffer does not affect each other at all. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
copyin interfaceChannelBuffer
-
slice
public ChannelBuffer slice(int index, int length)
Description copied from interface:ChannelBufferReturns a slice of this buffer's sub-region. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
slicein interfaceChannelBuffer
-
getByte
public byte getByte(int index)
Description copied from interface:ChannelBufferGets a byte at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
getBytein interfaceChannelBuffer
-
getShort
public short getShort(int index)
Description copied from interface:ChannelBufferGets a 16-bit short integer at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
getShortin interfaceChannelBuffer
-
getUnsignedMedium
public int getUnsignedMedium(int index)
Description copied from interface:ChannelBufferGets an unsigned 24-bit medium integer at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
getUnsignedMediumin interfaceChannelBuffer
-
getInt
public int getInt(int index)
Description copied from interface:ChannelBufferGets a 32-bit integer at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
getIntin interfaceChannelBuffer
-
getLong
public long getLong(int index)
Description copied from interface:ChannelBufferGets a 64-bit long integer at the specified absoluteindexin this buffer. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
getLongin interfaceChannelBuffer
-
toByteBuffer
public java.nio.ByteBuffer toByteBuffer(int index, int length)Description copied from interface:ChannelBufferConverts this buffer's sub-region into a NIO buffer. The returned buffer might or might not share the content with this buffer, while they have separate indexes and marks. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
toByteBufferin interfaceChannelBuffer
-
toByteBuffers
public java.nio.ByteBuffer[] toByteBuffers(int index, int length)Description copied from interface:ChannelBufferConverts this buffer's sub-region into an array of NIO buffers. The returned buffers might or might not share the content with this buffer, while they have separate indexes and marks. This method does not modifyreaderIndexorwriterIndexof this buffer.- Specified by:
toByteBuffersin interfaceChannelBuffer- Overrides:
toByteBuffersin classAbstractChannelBuffer
-
capacity
public int capacity()
Description copied from interface:ChannelBufferReturns the number of bytes (octets) this buffer can contain.- Specified by:
capacityin interfaceChannelBuffer
-
-