org.objectweb.carol.irmi
Class RMIObjectInputStream
java.lang.Object
java.io.InputStream
java.io.ObjectInputStream
org.objectweb.carol.irmi.RMIObjectInputStream
- All Implemented Interfaces:
- Closeable, 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_ENUM, 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_ENUM, 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
- Throws:
IOException
resolveClass
protected Class resolveClass(ObjectStreamClass desc)
throws IOException,
ClassNotFoundException
- Implementation of the
ObjectInputStream.resolveClass(ObjectStreamClass) callback.
This implementation delegates to RMIClassLoader.
- Overrides:
resolveClass in class ObjectInputStream
- 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.
- Overrides:
resolveProxyClass in class ObjectInputStream
- 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.
- Overrides:
readClassDescriptor in class ObjectInputStream
- 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.
- Overrides:
readStreamHeader in class ObjectInputStream