jgroup.relacs.rmi
Class MarshalInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.ObjectInputStream
          extended by jgroup.relacs.rmi.MarshalInputStream
All Implemented Interfaces:
java.io.Closeable, java.io.DataInput, java.io.ObjectInput, java.io.ObjectStreamConstants

public class MarshalInputStream
extends java.io.ObjectInputStream

This class overrides the replaceObject method to replace each exported remote object with its corresponding stub instance. This is obtained by using the java.rmi.MarshalledObject class, that contains a byte stream with the serialized representation of an object given to its constructor. The contained object is serialized and deserialized with the same serialization semantics used for marshaling and unmarshaling parameters and return values of RMI calls.

Since:
Jgroup 0.8
Author:
Alberto Montresor

Nested Class Summary
 
Nested classes/interfaces inherited from class java.io.ObjectInputStream
java.io.ObjectInputStream.GetField
 
Field Summary
 
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
 
Constructor Summary
protected MarshalInputStream()
          Provide a way for subclasses that are completely reimplementing MarshalInputStream to not have to allocate private data just used by this implementation of ObjectInputStream.
  MarshalInputStream(java.io.InputStream out)
           
 
Method Summary
protected  java.lang.Object resolveObject(java.lang.Object obj)
          If the specified object is a marshalled object, extracts the contained object from it.
 
Methods inherited from class java.io.ObjectInputStream
available, close, defaultReadObject, enableResolveObject, read, read, readBoolean, readByte, readChar, readClassDescriptor, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveClass, resolveProxyClass, skipBytes
 
Methods inherited from class java.io.InputStream
mark, markSupported, read, reset, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.io.ObjectInput
read, skip
 

Constructor Detail

MarshalInputStream

protected MarshalInputStream()
                      throws java.io.IOException
Provide a way for subclasses that are completely reimplementing MarshalInputStream to not have to allocate private data just used by this implementation of ObjectInputStream.

If there is a security manager installed, this method first calls the security manager's checkPermission method with a SerializablePermission("enableSubclassImplementation") permission to ensure it's ok to enable subclassing.

Throws:
java.io.IOException - Thrown if not called by a subclass.
java.lang.SecurityException - if a security manager exists and its checkPermission method denies enabling subclassing.

MarshalInputStream

public MarshalInputStream(java.io.InputStream out)
                   throws java.io.IOException
Throws:
java.io.IOException
Method Detail

resolveObject

protected java.lang.Object resolveObject(java.lang.Object obj)
                                  throws java.io.IOException
If the specified object is a marshalled object, extracts the contained object from it.

Overrides:
resolveObject in class java.io.ObjectInputStream
Throws:
java.io.IOException


Copyright © 1998-2006 The Jgroup/ARM development team. All Rights Reserved.