org.openorb.io
Class AbstractInputStream

java.lang.Object
  |
  +--java.io.InputStream
        |
        +--org.omg.CORBA.portable.InputStream
              |
              +--org.omg.CORBA_2_3.portable.InputStream
                    |
                    +--org.openorb.io.AbstractInputStream
All Implemented Interfaces:
ExtendedInputStream
Direct Known Subclasses:
CDRInputStream

public abstract class AbstractInputStream
extends InputStream
implements ExtendedInputStream

This class can be used as a base class for buffer input stream implementations. It handles buffer management.

Author:
Chris Wood, Michael Rumpf

Constructor Summary
AbstractInputStream(BufferSource source)
          Constructor.
AbstractInputStream(StorageBuffer buf)
          Constructor.
 
Method Summary
 int available()
          Available bytes in the input buffer.
 java.lang.String get_codebase()
          Get codebase associated with stream.
 void mark(int readlimit)
          Set a mark at the current buffer position.
 boolean markSupported()
          Check if the buffer supports position demarcation.
 int read()
          Read a single octet from a stream.
 int read(byte[] val)
          Read array from stream.
 int read(byte[] val, int off, int len)
          Read array from stream.
 void reset()
          Reset the current position to the latest mark.
 long skip(long count)
          Skip over bytes in the input buffer.
 
Methods inherited from class org.omg.CORBA_2_3.portable.InputStream
read_abstract_interface, read_abstract_interface, read_value, read_value, read_value, read_value, read_value
 
Methods inherited from class org.omg.CORBA.portable.InputStream
orb, read_any, read_boolean_array, read_boolean, read_char_array, read_char, read_Context, read_double_array, read_double, read_fixed, read_fixed, read_float_array, read_float, read_long_array, read_long, read_longlong_array, read_longlong, read_Object, read_Object, read_octet_array, read_octet, read_Principal, read_short_array, read_short, read_string, read_TypeCode, read_ulong_array, read_ulong, read_ulonglong_array, read_ulonglong, read_ushort_array, read_ushort, read_wchar_array, read_wchar, read_wstring
 
Methods inherited from class java.io.InputStream
close
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.openorb.io.ExtendedInputStream
orb, read_fixed, read_fixed
 

Constructor Detail

AbstractInputStream

public AbstractInputStream(StorageBuffer buf)
Constructor. Use the passed buffer to perform the stream IO operations on.
Parameters:
buf - The storage buffer used as input source,

AbstractInputStream

public AbstractInputStream(BufferSource source)
Constructor.
Parameters:
m_source -  
Method Detail

get_codebase

public java.lang.String get_codebase()
Get codebase associated with stream.
Specified by:
get_codebase in interface ExtendedInputStream
Returns:
The contents of any TAG_JAVA_CODEBASE service context when unmarshaling, or otherwise return null.

read

public int read()
         throws java.io.IOException
Read a single octet from a stream.
Overrides:
read in class InputStream
Returns:
The actual number of bytes read or -1 for the end of the stream rather than throwing an exception.

read

public int read(byte[] val)
Read array from stream.
Overrides:
read in class java.io.InputStream
Parameters:
val - The array into which to read the data.
Returns:
The actual number of bytes read or -1 for end of stream rather than throwing an exception.

read

public int read(byte[] val,
                int off,
                int len)
Read array from stream.
Overrides:
read in class java.io.InputStream
Parameters:
val - The array into which to read the data.
off - The offset to skip from the beginning.
len - The requested number of bytes to read.
Returns:
The actual number of bytes read or -1 for end of stream rather than throwing an exception.

available

public int available()
Available bytes in the input buffer. This can change upwards as fragments arrive.
Overrides:
available in class java.io.InputStream
Returns:
The number of available bytes.

markSupported

public boolean markSupported()
Check if the buffer supports position demarcation.
Overrides:
markSupported in class java.io.InputStream
Returns:
Always true.

mark

public void mark(int readlimit)
Set a mark at the current buffer position.
Overrides:
mark in class java.io.InputStream
Parameters:
readlimit - NOT USED

reset

public void reset()
           throws java.io.IOException
Reset the current position to the latest mark.
Overrides:
reset in class java.io.InputStream
Throws:
java.io.IOException - An IOException is thrown when there is no mark where the buffer can be reset to.

skip

public long skip(long count)
Skip over bytes in the input buffer.
Overrides:
skip in class java.io.InputStream
Parameters:
count - The number of bytes to skip.