uka.karmi.stream
Class MarshalInputStream

java.lang.Object
  extended byjava.io.InputStream
      extended byjava.io.ObjectInputStream
          extended byuka.karmi.stream.MarshalInputStream
All Implemented Interfaces:
java.io.DataInput, MarshalInput, java.io.ObjectInput, java.io.ObjectStreamConstants
Direct Known Subclasses:
PSPTechnology.PSPInput

public class MarshalInputStream
extends java.io.ObjectInputStream
implements MarshalInput

A marshal stream for connections between two socket technology objects. Remote objects must be replaced during deserialization. When a MarshalInputStream is used to transport arguments or results in a remote method call, getDGCUnmarshalContext() returns the DGCUnmarshalContext that is used during the deserialization.

Author:
Bernhard Haumacher

Nested Class Summary
 
Nested classes inherited from class java.io.ObjectInputStream
java.io.ObjectInputStream.GetField
 
Field Summary
(package private)  Technology technology
           
(package private)  DGCUnmarshalContext unmarshalContext
           
 
Fields inherited from class java.io.ObjectInputStream
 
Fields inherited from class java.io.InputStream
 
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
 
Constructor Summary
MarshalInputStream(java.io.InputStream inputstream, Technology technology)
           
 
Method Summary
 DGCUnmarshalContext getDGCUnmarshalContext()
          Returns the DGCUnmarshalContext for this serialization
 Technology getTechnology()
          Returns the technology this object belongs to.
protected  void readStreamHeader()
          no stream header.
protected  java.lang.Object resolveObject(java.lang.Object obj)
          Replaces ReplicaStubs with their local replicas.
 
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, 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
 

Field Detail

technology

Technology technology

unmarshalContext

DGCUnmarshalContext unmarshalContext
Constructor Detail

MarshalInputStream

public MarshalInputStream(java.io.InputStream inputstream,
                          Technology technology)
                   throws java.io.IOException,
                          java.io.StreamCorruptedException
Method Detail

readStreamHeader

protected final void readStreamHeader()
                               throws java.io.IOException
no stream header.

Throws:
java.io.IOException

getTechnology

public final Technology getTechnology()
Returns the technology this object belongs to.

Specified by:
getTechnology in interface MarshalInput

getDGCUnmarshalContext

public final DGCUnmarshalContext getDGCUnmarshalContext()
Returns the DGCUnmarshalContext for this serialization

Specified by:
getDGCUnmarshalContext in interface MarshalInput

resolveObject

protected java.lang.Object resolveObject(java.lang.Object obj)
                                  throws java.io.IOException
Replaces ReplicaStubs with their local replicas.

Throws:
java.io.IOException