Package com.arjuna.ats.arjuna.state
Class OutputBuffer
- java.lang.Object
-
- com.arjuna.ats.arjuna.state.OutputBuffer
-
- Direct Known Subclasses:
OutputObjectState
public class OutputBuffer extends Object
An OuptputBuffer is used to store various Java types as a byte stream. Similar to java serialization. However, OutputBuffers are compatible with OTSArjuna states.- Since:
- JTS 1.0.
- Version:
- $Id: OutputBuffer.java 2342 2006-03-30 13:06:17Z $
- Author:
- Mark Little (mark@arjuna.com)
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean_validprotected static intALIGNMENTprotected static intheaderSize
-
Constructor Summary
Constructors Constructor Description OutputBuffer()Create a new buffer.OutputBuffer(byte[] b)Create a new buffer using the provided byte array.OutputBuffer(int buffSize)Create a new buffer with the specified initial size.OutputBuffer(OutputBuffer copyFrom)Create a new OutputBuffer and initialise its state with a copy of the provided buffer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]buffer()Return the byte array used to store data types.voidcopy(OutputBuffer b)Copy the provided OutputBuffer and overwrite the current instance.intlength()Return the length of the byte array being used to store data types.voidpackBoolean(boolean b)Pack the boolean.voidpackByte(byte b)Pack a byte.voidpackBytes(byte[] b)Pack the array of bytes.voidpackChar(char c)Pack the character.voidpackDouble(double d)Pack the double.voidpackFloat(float f)Pack the float.voidpackInt(int i)Pack the integer.voidpackInto(OutputBuffer buff)Pack this buffer into that provided.voidpackLong(long l)Pack the long.voidpackShort(short s)Pack the short.voidpackString(String s)Pack the String.voidpackStringBytes(byte[] bytes)voidprint(PrintWriter strm)Print out information about this instance.voidreset()Clear the OutputBuffer and rewind the pack pointer.booleanrewrite()Reset the pack pointer.booleanvalid()Is the buffer valid?
-
-
-
Field Detail
-
_valid
protected boolean _valid
-
headerSize
protected static final int headerSize
- See Also:
- Constant Field Values
-
ALIGNMENT
protected static final int ALIGNMENT
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
OutputBuffer
public OutputBuffer()
Create a new buffer.
-
OutputBuffer
public OutputBuffer(int buffSize)
Create a new buffer with the specified initial size. If required, the internal byte array will be automatically increased in size.
-
OutputBuffer
public OutputBuffer(byte[] b)
Create a new buffer using the provided byte array.
-
OutputBuffer
public OutputBuffer(OutputBuffer copyFrom)
Create a new OutputBuffer and initialise its state with a copy of the provided buffer.
-
-
Method Detail
-
valid
public final boolean valid()
Is the buffer valid?
-
buffer
public final byte[] buffer()
Return the byte array used to store data types.
-
length
public final int length()
Return the length of the byte array being used to store data types.
-
copy
public void copy(OutputBuffer b)
Copy the provided OutputBuffer and overwrite the current instance.
-
reset
public final void reset() throws IOExceptionClear the OutputBuffer and rewind the pack pointer.- Throws:
IOException
-
packByte
public final void packByte(byte b) throws IOExceptionPack a byte. If the buffer is invalid then an IOException is thrown.- Throws:
IOException
-
packBytes
public final void packBytes(byte[] b) throws IOExceptionPack the array of bytes. If the buffer is invalid then an IOException is thrown.- Throws:
IOException
-
packBoolean
public final void packBoolean(boolean b) throws IOExceptionPack the boolean. If the buffer is invalid then an IOException is thrown.- Throws:
IOException
-
packChar
public final void packChar(char c) throws IOExceptionPack the character. If the buffer is invalid then an IOException is thrown.- Throws:
IOException
-
packShort
public final void packShort(short s) throws IOExceptionPack the short. If the buffer is invalid then an IOException is thrown.- Throws:
IOException
-
packInt
public final void packInt(int i) throws IOExceptionPack the integer. If the buffer is invalid then an IOException is thrown.- Throws:
IOException
-
packLong
public final void packLong(long l) throws IOExceptionPack the long. If the buffer is invalid then an IOException is thrown.- Throws:
IOException
-
packFloat
public final void packFloat(float f) throws IOExceptionPack the float. If the buffer is invalid then an IOException is thrown.- Throws:
IOException
-
packDouble
public final void packDouble(double d) throws IOExceptionPack the double. If the buffer is invalid then an IOException is thrown.- Throws:
IOException
-
packString
public final void packString(String s) throws IOException
Pack the String. Currently different from the C++ version in that a copy of the string will always be packed, even if we have previously seen this object. If the buffer is invalid then an IOException is thrown.- Throws:
IOException
-
packStringBytes
public final void packStringBytes(byte[] bytes) throws IOException- Throws:
IOException
-
packInto
public void packInto(OutputBuffer buff) throws IOException
Pack this buffer into that provided. If the buffer is invalid then an IOException is thrown.- Throws:
IOException
-
print
public void print(PrintWriter strm)
Print out information about this instance.
-
rewrite
public final boolean rewrite()
Reset the pack pointer.
-
-