CoherenceTM v3.3
Copyright© 2000-2007 by Oracle Corporation

com.tangosol.io
Class ByteArrayWriteBuffer.ByteArrayBufferOutput

java.lang.Object
  extended by com.tangosol.io.AbstractWriteBuffer.AbstractBufferOutput
      extended by com.tangosol.io.ByteArrayWriteBuffer.ByteArrayBufferOutput
All Implemented Interfaces:
OutputStreaming, WriteBuffer.BufferOutput, DataOutput
Enclosing class:
ByteArrayWriteBuffer

public class ByteArrayWriteBuffer.ByteArrayBufferOutput
extends AbstractWriteBuffer.AbstractBufferOutput

ByteArrayBufferOutput is an implementation of BufferOutput optimized for writing to the buffer's underlying byte array.

Author:
cp 2005.03.25

Field Summary
 
Fields inherited from class com.tangosol.io.AbstractWriteBuffer.AbstractBufferOutput
m_ofWrite
 
Constructor Summary
ByteArrayWriteBuffer.ByteArrayBufferOutput()
          Construct an ByteArrayBufferOutput that will begin writing at the start of the containing WriteBuffer.
ByteArrayWriteBuffer.ByteArrayBufferOutput(int of)
          Construct an ByteArrayBufferOutput that will begin writing at the specified offset within the containing WriteBuffer.
 
Method Summary
protected  void moveOffset(int cb)
          Move the offset within the stream forward.
 void writeBytes(String s)
          Writes the String s, but only the low-order byte from each character of the String is written.
 void writeChars(String s)
          Writes the String s as a sequence of characters.
 void writeInt(int n)
          Writes an int value.
 void writeLong(long l)
          Writes a long value.
 void writePackedInt(int n)
          Write an int value using a variable-length storage-format.
 void writePackedLong(long l)
          Write a long value using a variable-length storage-format.
 void writeSafeUTF(String s)
          Write a variable-length encoded UTF packed String.
 void writeShort(int n)
          Writes a short value, comprised of the 16 low-order bits of the argument n; the 16 high-order bits of n are ignored.
 void writeUTF(String s)
          Writes the String s as a sequence of characters, but using UTF-8 encoding for the characters, and including the String length data so that the corresponding DataInput.readUTF() method can reconstitute a String from the written data.
 
Methods inherited from class com.tangosol.io.AbstractWriteBuffer.AbstractBufferOutput
calcUTF, close, flush, formatUTF, getBuffer, getCharBuf, getOffset, setOffset, write, write, write, writeBoolean, writeBuffer, writeBuffer, writeByte, writeChar, writeDouble, writeFloat, writeStream, writeStream
 

Constructor Detail

ByteArrayWriteBuffer.ByteArrayBufferOutput

public ByteArrayWriteBuffer.ByteArrayBufferOutput()
Construct an ByteArrayBufferOutput that will begin writing at the start of the containing WriteBuffer.


ByteArrayWriteBuffer.ByteArrayBufferOutput

public ByteArrayWriteBuffer.ByteArrayBufferOutput(int of)
Construct an ByteArrayBufferOutput that will begin writing at the specified offset within the containing WriteBuffer.

Parameters:
of - the offset at which to begin writing
Method Detail

writeShort

public void writeShort(int n)
                throws IOException
Writes a short value, comprised of the 16 low-order bits of the argument n; the 16 high-order bits of n are ignored.

Specified by:
writeShort in interface DataOutput
Overrides:
writeShort in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
n - the short to write (passed as an integer)
Throws:
IOException - if an I/O error occurs

writeInt

public void writeInt(int n)
              throws IOException
Writes an int value.

Specified by:
writeInt in interface DataOutput
Overrides:
writeInt in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
n - the int to write
Throws:
IOException - if an I/O error occurs

writeLong

public void writeLong(long l)
               throws IOException
Writes a long value.

Specified by:
writeLong in interface DataOutput
Overrides:
writeLong in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
l - the long to write
Throws:
IOException - if an I/O error occurs

writeBytes

public void writeBytes(String s)
                throws IOException
Writes the String s, but only the low-order byte from each character of the String is written.

Specified by:
writeBytes in interface DataOutput
Overrides:
writeBytes in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
s - the String to write
Throws:
IOException - if an I/O error occurs
NullPointerException - if s is null

writeChars

public void writeChars(String s)
                throws IOException
Writes the String s as a sequence of characters.

Specified by:
writeChars in interface DataOutput
Overrides:
writeChars in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
s - the String to write
Throws:
IOException - if an I/O error occurs
NullPointerException - if s is null

writeUTF

public void writeUTF(String s)
              throws IOException
Writes the String s as a sequence of characters, but using UTF-8 encoding for the characters, and including the String length data so that the corresponding DataInput.readUTF() method can reconstitute a String from the written data.

Specified by:
writeUTF in interface DataOutput
Overrides:
writeUTF in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
s - the String to write
Throws:
IOException - if an I/O error occurs
NullPointerException - if s is null

writeSafeUTF

public void writeSafeUTF(String s)
                  throws IOException
Write a variable-length encoded UTF packed String. The major differences between this implementation and DataOutput is that this implementation supports null values and is not limited to 64KB UTF-encoded values.

The binary format for a Safe UTF value is a "packed int" for the binary length followed by the UTF-encoded byte stream. The length is either -1 (indicating a null String) or in the range 0 .. Integer.MAX_VALUE (inclusive). The UTF-encoded portion uses a format idential to DataOutput.

Specified by:
writeSafeUTF in interface WriteBuffer.BufferOutput
Overrides:
writeSafeUTF in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
s - a String value to write; may be null
Throws:
IOException - if an I/O error occurs

writePackedInt

public void writePackedInt(int n)
                    throws IOException
Write an int value using a variable-length storage-format.

The format differs from DataOutput in that DataOutput always uses a fixed-length 4-byte Big Endian binary format for int values. The "packed" format includes a sign bit (0x40) and a continuation bit (0x80) in the first byte, followed by the least 6 significant bits of the int value. Subsequent bytes (each appearing only if the previous byte had its continuation bit set) include a continuation bit (0x80) and the next least 7 significant bits of the int value. In this way, a 32-bit value is encoded into 1-5 bytes, depending on the magnitude of the int being encoded.

Specified by:
writePackedInt in interface WriteBuffer.BufferOutput
Overrides:
writePackedInt in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
n - an int value to write
Throws:
IOException - if an I/O error occurs

writePackedLong

public void writePackedLong(long l)
                     throws IOException
Write a long value using a variable-length storage-format.

The format differs from DataOutput in that DataOutput always uses a fixed-length 8-byte Big Endian binary format for long values. The "packed" format includes a sign bit (0x40) and a continuation bit (0x80) in the first byte, followed by the least 6 significant bits of the long value. Subsequent bytes (each appearing only if the previous byte had its continuation bit set) include a continuation bit (0x80) and the next least 7 significant bits of the long value. In this way, a 64-bit value is encoded into 1-10 bytes, depending on the magnitude of the int being encoded.

Specified by:
writePackedLong in interface WriteBuffer.BufferOutput
Overrides:
writePackedLong in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
l - a long value to write
Throws:
IOException - if an I/O error occurs

moveOffset

protected void moveOffset(int cb)
Move the offset within the stream forward.

Parameters:
cb - the number of bytes to advance the offset

CoherenceTM v3.3
Copyright© 2000-2007 by Oracle Corporation