com.arjuna.ats.arjuna.state
Class OutputBuffer

java.lang.Object
  extended bycom.arjuna.ats.arjuna.state.OutputBuffer
Direct Known Subclasses:
OutputObjectState

public class OutputBuffer
extends java.lang.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
protected  boolean _valid
           
protected static int ALIGNMENT
           
protected static int headerSize
           
 
Constructor Summary
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
 byte[] buffer()
          Return the byte array used to store data types.
 void copy(OutputBuffer b)
          Copy the provided OutputBuffer and overwrite the current instance.
 int length()
          Return the length of the byte array being used to store data types.
 void packBoolean(boolean b)
          Pack the boolean.
 void packByte(byte b)
          Pack a byte.
 void packBytes(byte[] b)
          Pack the array of bytes.
 void packChar(char c)
          Pack the character.
 void packDouble(double d)
          Pack the double.
 void packFloat(float f)
          Pack the float.
 void packInt(int i)
          Pack the integer.
 void packInto(OutputBuffer buff)
          Pack this buffer into that provided.
 void packLong(long l)
          Pack the long.
 void packShort(short s)
          Pack the short.
 void packString(java.lang.String s)
          Pack the String.
 void print(java.io.PrintWriter strm)
          Print out information about this instance.
 void reset()
          Clear the OutputBuffer and rewind the pack pointer.
 boolean rewrite()
          Reset the pack pointer.
 boolean valid()
          Is the buffer valid?
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 java.io.IOException
Clear the OutputBuffer and rewind the pack pointer.

Throws:
java.io.IOException

packByte

public final void packByte(byte b)
                    throws java.io.IOException
Pack a byte. If the buffer is invalid then an IOException is thrown.

Throws:
java.io.IOException

packBytes

public final void packBytes(byte[] b)
                     throws java.io.IOException
Pack the array of bytes. If the buffer is invalid then an IOException is thrown.

Throws:
java.io.IOException

packBoolean

public final void packBoolean(boolean b)
                       throws java.io.IOException
Pack the boolean. If the buffer is invalid then an IOException is thrown.

Throws:
java.io.IOException

packChar

public final void packChar(char c)
                    throws java.io.IOException
Pack the character. If the buffer is invalid then an IOException is thrown.

Throws:
java.io.IOException

packShort

public final void packShort(short s)
                     throws java.io.IOException
Pack the short. If the buffer is invalid then an IOException is thrown.

Throws:
java.io.IOException

packInt

public final void packInt(int i)
                   throws java.io.IOException
Pack the integer. If the buffer is invalid then an IOException is thrown.

Throws:
java.io.IOException

packLong

public final void packLong(long l)
                    throws java.io.IOException
Pack the long. If the buffer is invalid then an IOException is thrown.

Throws:
java.io.IOException

packFloat

public final void packFloat(float f)
                     throws java.io.IOException
Pack the float. If the buffer is invalid then an IOException is thrown.

Throws:
java.io.IOException

packDouble

public final void packDouble(double d)
                      throws java.io.IOException
Pack the double. If the buffer is invalid then an IOException is thrown.

Throws:
java.io.IOException

packString

public final void packString(java.lang.String s)
                      throws java.io.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:
java.io.IOException

packInto

public void packInto(OutputBuffer buff)
              throws java.io.IOException
Pack this buffer into that provided. If the buffer is invalid then an IOException is thrown.

Throws:
java.io.IOException

print

public void print(java.io.PrintWriter strm)
Print out information about this instance.


rewrite

public final boolean rewrite()
Reset the pack pointer.