org.objectweb.fractal.rmi.io
Class RmiObjectOutputStream
java.lang.Object
java.io.OutputStream
java.io.ObjectOutputStream
org.objectweb.fractal.rmi.io.RmiObjectOutputStream
- All Implemented Interfaces:
- DataOutput, ObjectOutput, ObjectStreamConstants
- public class RmiObjectOutputStream
- extends ObjectOutputStream
An ObjectOutputStream that replaces interface references with Ref objects.
|
Field Summary |
protected NamingContext |
domain
The naming context used to export local interfaces, to make them
remotely accessible. |
| 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 |
|
Method Summary |
protected void |
drain()
Drain any buffered data in this stream. |
protected Object |
replaceObject(Object obj)
Replaces component interfaces with Ref objects. |
| Methods inherited from class java.io.ObjectOutputStream |
annotateClass, annotateProxyClass, close, defaultWriteObject, enableReplaceObject, flush, putFields, reset, useProtocolVersion, write, write, write, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeClassDescriptor, writeDouble, writeFields, writeFloat, writeInt, writeLong, writeObject, writeObjectOverride, writeShort, writeStreamHeader, writeUnshared, writeUTF |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
domain
protected NamingContext domain
- The naming context used to export local interfaces, to make them
remotely accessible.
RmiObjectOutputStream
public RmiObjectOutputStream(OutputStream os,
NamingContext domain)
throws IOException
- Constructs a new
RmiObjectOutputStream.
- Parameters:
os - the underlying output stream.domain - the naming context to be used to export local interface
references, to make them remotely accessible.
- Throws:
IOException - if the super constructor throws an exception.
replaceObject
protected Object replaceObject(Object obj)
throws IOException
- Replaces component interfaces with
Ref objects. If the given
object is an Interface, two cases are possible. If the object is
also a Reference, then it is replaced with a Ref object
containing an encoded form of the identifier held by the Reference.
If the object is not a Reference, then it is exported with domain, and replaced with a Ref object containing an
encoded form of the Identifier
returned by export.
- Parameters:
obj - an object.
- Returns:
- a
Ref object if obj is a component interface,
or obj otherwise.
- Throws:
IOException - if a component interface cannot be replaced with a
Ref object.
drain
protected void drain()
throws IOException
- Drain any buffered data in this stream.
- Throws:
IOException - if an IO exception occurs.