|
CoherenceTM v3.3 Copyright© 2000-2007 by Oracle Corporation |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.tangosol.io.AbstractWriteBuffer.AbstractBufferOutput
public class AbstractWriteBuffer.AbstractBufferOutput
AbstractBufferOutput is a concrete implementation of BufferOutput for the non-concrete AbstractWriteBuffer implementation.
Field Summary | |
---|---|
protected int |
m_ofWrite
Current write offset within the containing WriteBuffer. |
Constructor Summary | |
---|---|
AbstractWriteBuffer.AbstractBufferOutput()
Construct an AbstractBufferOutput that will begin writing at the start of the containing WriteBuffer. |
|
AbstractWriteBuffer.AbstractBufferOutput(int of)
Construct an AbstractBufferOutput that will begin writing at the specified offset within the containing WriteBuffer. |
Method Summary | |
---|---|
protected int |
calcUTF(String s)
Figure out how many bytes it will take to hold the passed String. |
void |
close()
Close the OutputStream and release any system resources associated with it. |
void |
flush()
Flushes this OutputStream and forces any buffered output bytes to be written. |
protected void |
formatUTF(byte[] ab,
int ofb,
int cb,
String s)
Format the passed String as UTF into the passed byte array. |
WriteBuffer |
getBuffer()
Get the WriteBuffer object that this BufferOutput is writeing to. |
protected char[] |
getCharBuf()
Obtain a temp buffer used to avoid allocations from String.toCharArray() and repeated calls to
String.charAt(int) . |
int |
getOffset()
Determine the current offset of this BufferOutput within the underlying WriteBuffer. |
void |
setOffset(int of)
Specify the offset of the next byte to write to the underlying WriteBuffer. |
void |
write(byte[] ab)
Writes all the bytes in the array ab. |
void |
write(byte[] ab,
int of,
int cb)
Writes cb bytes starting at offset of from the array ab. |
void |
write(int b)
Writes the eight low-order bits of the argument b. |
void |
writeBoolean(boolean f)
Writes the boolean value f. |
void |
writeBuffer(ReadBuffer buf)
Write all the bytes from the passed ReadBuffer object. |
void |
writeBuffer(ReadBuffer buf,
int of,
int cb)
Write cb bytes from the passed ReadBuffer object starting at offset of within the passed ReadBuffer. |
void |
writeByte(int b)
Writes the eight low-order bits of the argument b. |
void |
writeBytes(String s)
Writes the String s, but only the low-order byte from each character of the String is written. |
void |
writeChar(int ch)
Writes a char value, comprised of the 16 low-order bits of the argument ch; the 16 high-order bits of ch are ignored. |
void |
writeChars(String s)
Writes the String s as a sequence of characters. |
void |
writeDouble(double dfl)
Writes a double value. |
void |
writeFloat(float fl)
Writes a float value. |
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 |
writeStream(InputStreaming stream)
Write the remaining contents of the specified InputStreaming object. |
void |
writeStream(InputStreaming stream,
int cb)
Write the specified number of bytes of the specified InputStreaming object. |
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. |
Field Detail |
---|
protected int m_ofWrite
Constructor Detail |
---|
public AbstractWriteBuffer.AbstractBufferOutput()
public AbstractWriteBuffer.AbstractBufferOutput(int of)
of
- the offset at which to begin writingMethod Detail |
---|
public void write(int b) throws IOException
write
in interface OutputStreaming
write
in interface DataOutput
b
- the byte to write (passed as an integer)
IOException
- if an I/O error occurspublic void write(byte[] ab) throws IOException
write
in interface OutputStreaming
write
in interface DataOutput
ab
- the byte array to write
IOException
- if an I/O error occurs
NullPointerException
- if ab is nullpublic void write(byte[] ab, int of, int cb) throws IOException
write
in interface OutputStreaming
write
in interface DataOutput
ab
- the byte array to write fromof
- the offset into ab to start writing fromcb
- the number of bytes from ab to write
IOException
- if an I/O error occurs
NullPointerException
- if ab is null
IndexOutOfBoundsException
- if of is negative, or
cb is negative, or of+cb is greater than
ab.lengthpublic void flush() throws IOException
flush
in interface OutputStreaming
IOException
- if an I/O error occurspublic void close() throws IOException
BufferOutput implementations do not pass this call down onto an underlying stream, if any.
close
in interface OutputStreaming
close
in interface WriteBuffer.BufferOutput
IOException
- if an I/O error occurspublic void writeBoolean(boolean f) throws IOException
writeBoolean
in interface DataOutput
f
- the boolean to be written
IOException
- if an I/O error occurspublic void writeByte(int b) throws IOException
writeByte
in interface DataOutput
b
- the byte to write (passed as an integer)
IOException
- if an I/O error occurspublic void writeShort(int n) throws IOException
writeShort
in interface DataOutput
n
- the short to write (passed as an integer)
IOException
- if an I/O error occurspublic void writeChar(int ch) throws IOException
writeChar
in interface DataOutput
ch
- the char to write (passed as an integer)
IOException
- if an I/O error occurspublic void writeInt(int n) throws IOException
writeInt
in interface DataOutput
n
- the int to write
IOException
- if an I/O error occurspublic void writeLong(long l) throws IOException
writeLong
in interface DataOutput
l
- the long to write
IOException
- if an I/O error occurspublic void writeFloat(float fl) throws IOException
writeFloat
in interface DataOutput
fl
- the float to write
IOException
- if an I/O error occurspublic void writeDouble(double dfl) throws IOException
writeDouble
in interface DataOutput
dfl
- the double to write
IOException
- if an I/O error occurspublic void writeBytes(String s) throws IOException
writeBytes
in interface DataOutput
s
- the String to write
IOException
- if an I/O error occurs
NullPointerException
- if s is nullpublic void writeChars(String s) throws IOException
writeChars
in interface DataOutput
s
- the String to write
IOException
- if an I/O error occurs
NullPointerException
- if s is nullpublic void writeUTF(String s) throws IOException
DataInput.readUTF()
method can reconstitute a String from the written data.
writeUTF
in interface DataOutput
s
- the String to write
IOException
- if an I/O error occurs
NullPointerException
- if s is nullpublic WriteBuffer getBuffer()
getBuffer
in interface WriteBuffer.BufferOutput
public void writeSafeUTF(String s) throws IOException
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.
writeSafeUTF
in interface WriteBuffer.BufferOutput
s
- a String value to write; may be null
IOException
- if an I/O error occurspublic void writePackedInt(int n) throws IOException
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.
writePackedInt
in interface WriteBuffer.BufferOutput
n
- an int value to write
IOException
- if an I/O error occurspublic void writePackedLong(long l) throws IOException
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.
writePackedLong
in interface WriteBuffer.BufferOutput
l
- a long value to write
IOException
- if an I/O error occurspublic void writeBuffer(ReadBuffer buf) throws IOException
This is functionally equivalent to the following code:
getBuffer().write(getOffset(), buf);
writeBuffer
in interface WriteBuffer.BufferOutput
buf
- a ReadBuffer object
IOException
- if an I/O error occurspublic void writeBuffer(ReadBuffer buf, int of, int cb) throws IOException
This is functionally equivalent to the following code:
getBuffer().write(getOffset(), buf, of, cb);
writeBuffer
in interface WriteBuffer.BufferOutput
buf
- a ReadBuffer objectof
- the offset within the ReadBuffer of the first byte to
write to this BufferOutputcb
- the number of bytes to write
IOException
- if an I/O error occurspublic void writeStream(InputStreaming stream) throws IOException
This is functionally equivalent to the following code:
getBuffer().write(getOffset(), stream);
writeStream
in interface WriteBuffer.BufferOutput
stream
- the stream of bytes to write to this BufferOutput
IOException
- if an I/O error occurs, specifically if an
IOException occurs reading from the passed streampublic void writeStream(InputStreaming stream, int cb) throws IOException
This is functionally equivalent to the following code:
getBuffer().write(getOffset(), stream, cb);
writeStream
in interface WriteBuffer.BufferOutput
stream
- the stream of bytes to write to this BufferOutputcb
- the exact number of bytes to read from the stream
and write to this BufferOutput
EOFException
- if the stream is exhausted before
the number of bytes indicated could be read
IOException
- if an I/O error occurs, specifically if an
IOException occurs reading from the passed streampublic int getOffset()
getOffset
in interface WriteBuffer.BufferOutput
public void setOffset(int of)
setOffset
in interface WriteBuffer.BufferOutput
of
- the offset of the next byte to write to the
WriteBuffer
IndexOutOfBoundsException
- if of < 0 or
of > getBuffer().getMaximumCapacity()protected final char[] getCharBuf()
String.toCharArray()
and repeated calls to
String.charAt(int)
.
protected final int calcUTF(String s)
s
- the String
protected final void formatUTF(byte[] ab, int ofb, int cb, String s)
ab
- the byte array to format intoofb
- the offset into the byte array to write the first bytecb
- the number of bytes that the UTF will takes
- the String
|
CoherenceTM v3.3 Copyright© 2000-2007 by Oracle Corporation |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |