org.openorb.rmi.system
Class RMIOutputStream

java.lang.Object
  |
  +--java.io.OutputStream
        |
        +--org.omg.CORBA.portable.OutputStream
              |
              +--org.omg.CORBA_2_3.portable.OutputStream
                    |
                    +--org.openorb.orb.iiop.CDROutputStream
                          |
                          +--org.openorb.rmi.system.RMIOutputStream
All Implemented Interfaces:
org.openorb.orb.io.ExtendedOutputStream, org.apache.avalon.framework.logger.LogEnabled

public class RMIOutputStream
extends org.openorb.orb.iiop.CDROutputStream

This class extends the standard OutputStream to marshall RMI specific types. The only justification for this class is that several OpenORB related optimizations are introduced. When the value handler implementation is the OpenORB's one then several methods are available that can speed up methods: value_extended_replace(), value_extended_get_IDs()

Author:
Jerome Daniel

Constructor Summary
RMIOutputStream(org.omg.CORBA.ORB orb, org.omg.GIOP.Version version, org.openorb.orb.io.MarshalBuffer buf)
          Constructor used by message level, fragments may be sent as elements are appended to the stream, so create_input_stream is disallowed.
 
Method Summary
 void enableLogging(org.apache.avalon.framework.logger.Logger logger)
          Provide the instance with a logger.
 void super_write_value(java.io.Serializable value)
           
 void super_write_value(java.io.Serializable value, org.omg.CORBA.portable.BoxedValueHelper boxhelp)
           
 void super_write_value(java.io.Serializable value, java.lang.Class clz)
           
 void super_write_value(java.io.Serializable value, java.lang.String arg_repo_id)
           
protected  java.lang.String[] value_extended_get_IDs(java.io.Serializable value)
          Return IDs for this extended type ( RMI type ).
protected  void value_extended_marshal(java.io.Serializable value)
          Marshal a RMI type.
protected  java.io.Serializable value_extended_replace(java.io.Serializable value)
          Returns replacement class if the target is write replaced, or the original class otherwise.
 void write_value(java.io.Serializable value)
          Write a value to a CDR stream.
 void write_value(java.io.Serializable value, org.omg.CORBA.portable.BoxedValueHelper boxhelp)
          Write a value from a CDR stream.
 void write_value(java.io.Serializable value, java.lang.Class clz)
          Write a value to a CDR stream.
 void write_value(java.io.Serializable value, java.lang.String arg_repo_id)
          Write a value from a CDR stream.
 
Methods inherited from class org.openorb.orb.iiop.CDROutputStream
alignment, begin_encapsulation, close, create_input_stream, end_encapsulation, flush, getLogger, getMarshalBuffer, index, orb, pending_alignment, setCodesets, value_extended_custom, version, write_abstract_interface, write_any, write_boolean_array, write_boolean, write_char_array, write_char, write_Context, write_double_array, write_double, write_fixed, write_fixed, write_fixed, write_float_array, write_float, write_long_array, write_long, write_longlong_array, write_longlong, write_Object, write_octet_array, write_octet, write_Principal, write_short_array, write_short, write_string, write_TypeCode, write_ulong_array, write_ulong, write_ulonglong_array, write_ulonglong, write_ushort_array, write_ushort, write_wchar_array, write_wchar, write_wstring, write, write, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RMIOutputStream

public RMIOutputStream(org.omg.CORBA.ORB orb,
                       org.omg.GIOP.Version version,
                       org.openorb.orb.io.MarshalBuffer buf)
Constructor used by message level, fragments may be sent as elements are appended to the stream, so create_input_stream is disallowed.
Parameters:
orb - The orb used for the communication.
version - The GIOP version of the stream data.
buf - The buffer to write the data to.
Method Detail

enableLogging

public void enableLogging(org.apache.avalon.framework.logger.Logger logger)
Provide the instance with a logger.
Overrides:
enableLogging in class org.openorb.orb.iiop.CDROutputStream
Parameters:
logger - The logger to use.

write_value

public void write_value(java.io.Serializable value)
Write a value to a CDR stream.
Overrides:
write_value in class org.openorb.orb.iiop.CDROutputStream
Parameters:
value - The value to be written.

super_write_value

public void super_write_value(java.io.Serializable value)

write_value

public void write_value(java.io.Serializable value,
                        java.lang.String arg_repo_id)
Write a value from a CDR stream.
Overrides:
write_value in class org.openorb.orb.iiop.CDROutputStream
Parameters:
value - The value to be written.
arg_repo_id - The repository id to be used for the value.

super_write_value

public void super_write_value(java.io.Serializable value,
                              java.lang.String arg_repo_id)

write_value

public void write_value(java.io.Serializable value,
                        java.lang.Class clz)
Write a value to a CDR stream.
Overrides:
write_value in class org.openorb.orb.iiop.CDROutputStream
Parameters:
value - The value to be written.
clz - The type of the value.

super_write_value

public void super_write_value(java.io.Serializable value,
                              java.lang.Class clz)

write_value

public void write_value(java.io.Serializable value,
                        org.omg.CORBA.portable.BoxedValueHelper boxhelp)
Write a value from a CDR stream.
Overrides:
write_value in class org.openorb.orb.iiop.CDROutputStream
Parameters:
value - The value to be written.
boxhelp - The value box to be used.

super_write_value

public void super_write_value(java.io.Serializable value,
                              org.omg.CORBA.portable.BoxedValueHelper boxhelp)

value_extended_replace

protected java.io.Serializable value_extended_replace(java.io.Serializable value)
Returns replacement class if the target is write replaced, or the original class otherwise.
Overrides:
value_extended_replace in class org.openorb.orb.iiop.CDROutputStream
Parameters:
value - The value to be written.
Returns:
The replaced value that is to be written in place of the original value.

value_extended_get_IDs

protected java.lang.String[] value_extended_get_IDs(java.io.Serializable value)
Return IDs for this extended type ( RMI type ). Overloads the CDROutputStream's method.
Overrides:
value_extended_get_IDs in class org.openorb.orb.iiop.CDROutputStream
Parameters:
value - The value to get the IDs for.
Returns:
The RMI repository IDs for the value.

value_extended_marshal

protected void value_extended_marshal(java.io.Serializable value)
Marshal a RMI type. Overloads the CDROutputStream's method.
Overrides:
value_extended_marshal in class org.openorb.orb.iiop.CDROutputStream
Parameters:
value - The value to be written.