org.objectweb.carol.irmi
Class RMIObjectInputStream
java.lang.Object
java.io.InputStream
java.io.ObjectInputStream
org.objectweb.carol.irmi.RMIObjectInputStream
- All Implemented Interfaces:
- DataInput, ObjectInput, ObjectStreamConstants
- public class RMIObjectInputStream
- extends ObjectInputStream
RMIObjectInputStream is a specialized subclass of ObjectInputStream
used by this RMI implementation. It must be used in concert with
RMIObjectOutputStream
. Specialized behavior includes class
resolution using RMIClassLoader
, and caching of class
descriptors.
- Author:
- Rafael H. Schloming <rhs@mit.edu>
Fields inherited from interface java.io.ObjectStreamConstants |
baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING |
Methods inherited from class java.io.ObjectInputStream |
available, close, defaultReadObject, enableResolveObject, read, read, readBoolean, readByte, readChar, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveObject, skipBytes |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
RMIObjectInputStream
public RMIObjectInputStream(InputStream in)
throws IOException
- Constructs a new RMIObjectInputStream that ready from the
specified
InputStream
.
- Parameters:
in
- the InputStream
to use for input
resolveClass
protected Class resolveClass(ObjectStreamClass desc)
throws IOException,
ClassNotFoundException
- Implementation of the
ObjectInputStream.resolveClass(ObjectStreamClass)
callback.
This implementation delegates to RMIClassLoader
.
- Parameters:
desc
- the ObjectStreamClass
serialized
representation of the class object
- Returns:
- the resolved
Class
object corresponding to the
serialized class object
- Throws:
IOException
- if there is an error with the underlying stream
ClassNotFoundException
- if the serialized class cannot
be located
resolveProxyClass
protected Class resolveProxyClass(String[] interfaces)
throws IOException,
ClassNotFoundException
- Implementation of the
ObjectInputStream.resolveProxyClass(String[])
callback. This
implementation delegates to RMIClassLoader
.
- Parameters:
interfaces
- the interfaces implemented by the serialized
proxy class
- Returns:
- the resolved
Class
object corresponding to the
serialized class object
- Throws:
IOException
- if there is an error with the underlying stream
ClassNotFoundException
- if any of the serialized
interfaces cannot be located
readClassDescriptor
protected ObjectStreamClass readClassDescriptor()
throws IOException,
ClassNotFoundException
- Implementation of the
ObjectInputStream.readClassDescriptor()
callback. This
implementation reads a class id from the underlying input
stream and either delegates to its superclass to read in a full
class descriptor or uses the id to return a previosuly read
class descriptor.
- Returns:
- the serialized
ObjectStreamClass
- Throws:
IOException
ClassNotFoundException
readStreamHeader
protected void readStreamHeader()
- Implementation of the
ObjectInputStream.readStreamHeader()
callback. This
implementation is specifically overridden to do nothing. See
ObjectOutputStream.writeStreamHeader()
for
details.