gov.llnl.babel.backend.rmi
Class RMI

java.lang.Object
  extended by gov.llnl.babel.backend.rmi.RMI

public class RMI
extends java.lang.Object


Constructor Summary
RMI()
           
 
Method Summary
static void declareStackArgs(LanguageWriterForC lw, Argument arg, Context context)
           
static void declareStackReturn(LanguageWriterForC lw, Type type, boolean isCopy, Context context)
           
static void declareStackSymbol(LanguageWriterForC lw, Type type, java.lang.String var, int mode, boolean isCopy, boolean isReturn, Context context)
           
static java.lang.String getDataExt()
          Returns the varialbe extension used to identify a temporary variable of for holding the pointer that inout arguments point to in serialization.
static java.lang.String getMethodExtension(Type t)
          generate the proper method extension for packing or unpacking
static java.lang.String getReturnArgName()
          Returns internal name of the return value.
static java.lang.String getSerializableExt()
          Returns the varialbe extension used to identify a temporary variable of type sidl.io.Serializable.
static java.lang.String getStringExt()
          Returns the varialbe extension used to identify a temporary variable of type String to be used for object connection.
static java.lang.String LangSpecificInit()
           
static void packArg(LanguageWriterForC lw, Context context, java.lang.String packer_typename, java.lang.String packer_varname, Argument arg, boolean reuseable)
          generate the method call to pack an argument
static void packType(LanguageWriterForC lw, Context context, java.lang.String packer_typename, java.lang.String packer_varname, Type type, java.lang.String varname, java.lang.String var, int mode, boolean isCopy, boolean reuseable, boolean isReturn)
          generate the method call to pack an argument
static void unpackArg(LanguageWriterForC lw, Context context, Extendable ext, java.lang.String packer_typename, java.lang.String packer_varname, Argument arg, boolean inIOR)
          generate the method call to unpack an argument
static void unpackType(LanguageWriterForC lw, Context context, Extendable ext, java.lang.String packer_typename, java.lang.String packer_varname, Type type, java.lang.String varname, java.lang.String var, int mode, boolean isCopy, boolean isReturn, boolean inIOR)
          generate the method call to unpack an argument or return value
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RMI

public RMI()
Method Detail

packArg

public static void packArg(LanguageWriterForC lw,
                           Context context,
                           java.lang.String packer_typename,
                           java.lang.String packer_varname,
                           Argument arg,
                           boolean reuseable)
generate the method call to pack an argument

Parameters:
lw - The language writer to write to
packer_typename - The packer type (often sidl_rmi_Serializer)
packer_varname - The name of the packer object
arg - The Argument itself
reuseable - True if (when the argument is an array) babel should attempt to copy the new data into the old array.

packType

public static void packType(LanguageWriterForC lw,
                            Context context,
                            java.lang.String packer_typename,
                            java.lang.String packer_varname,
                            Type type,
                            java.lang.String varname,
                            java.lang.String var,
                            int mode,
                            boolean isCopy,
                            boolean reuseable,
                            boolean isReturn)
generate the method call to pack an argument

Parameters:
lw - The language writer to write to
packer_typename - The packer type (often sidl_rmi_Serializer)
packer_varname - The name of the packer object
varname - The name the argument is called in the serializer
var - The actual argument name (return = _retval)
mode - IN, OUT, or INOUT
isCopy - Serialize the argument if it is an object.
reuseable - True is (when the argument is an array) babel should attempt to copy the new data into the old array.
isReturn - If it's a return value (not an argument)

unpackArg

public static void unpackArg(LanguageWriterForC lw,
                             Context context,
                             Extendable ext,
                             java.lang.String packer_typename,
                             java.lang.String packer_varname,
                             Argument arg,
                             boolean inIOR)
                      throws CodeGenerationException
generate the method call to unpack an argument

Parameters:
lw - The language writer to write to
ext - The Extendable this is being generated in
packer_typename - The packer type (often sidl_rmi_Serializer)
packer_varname - The name of the packer object
inIOR - True if this is being generated in thie IOR
Throws:
CodeGenerationException

unpackType

public static void unpackType(LanguageWriterForC lw,
                              Context context,
                              Extendable ext,
                              java.lang.String packer_typename,
                              java.lang.String packer_varname,
                              Type type,
                              java.lang.String varname,
                              java.lang.String var,
                              int mode,
                              boolean isCopy,
                              boolean isReturn,
                              boolean inIOR)
                       throws CodeGenerationException
generate the method call to unpack an argument or return value

Parameters:
lw - The language writer to write to
ext - The Extendable this is being generated in
packer_typename - The packer type (often sidl_rmi_Serializer)
packer_varname - The name of the packer object
type - The Type
varname - The name the argument is called in the serializer
var - The actual argument name (return = _retval)
mode - IN, OUT, or INOUT
isCopy - Serialize the argument if it is an object.
isReturn - If it's a return value (not an argument)
inIOR - True if this is being generated in thie IOR
Throws:
CodeGenerationException

getMethodExtension

public static java.lang.String getMethodExtension(Type t)
generate the proper method extension for packing or unpacking

Parameters:
t -

declareStackArgs

public static void declareStackArgs(LanguageWriterForC lw,
                                    Argument arg,
                                    Context context)
                             throws CodeGenerationException
Throws:
CodeGenerationException

declareStackReturn

public static void declareStackReturn(LanguageWriterForC lw,
                                      Type type,
                                      boolean isCopy,
                                      Context context)
                               throws CodeGenerationException
Throws:
CodeGenerationException

declareStackSymbol

public static void declareStackSymbol(LanguageWriterForC lw,
                                      Type type,
                                      java.lang.String var,
                                      int mode,
                                      boolean isCopy,
                                      boolean isReturn,
                                      Context context)
                               throws CodeGenerationException
Throws:
CodeGenerationException

getSerializableExt

public static java.lang.String getSerializableExt()
Returns the varialbe extension used to identify a temporary variable of type sidl.io.Serializable. (Used in object serialization)


getStringExt

public static java.lang.String getStringExt()
Returns the varialbe extension used to identify a temporary variable of type String to be used for object connection.


getDataExt

public static java.lang.String getDataExt()
Returns the varialbe extension used to identify a temporary variable of for holding the pointer that inout arguments point to in serialization. ie: if we have an inout argument of type int, it is passed as an int32_t*. However, we must unserialize the actual integer somewhere. So: int32_t x_data = unserialize_int(); int32_t* x = &x_data; _retval = foo(x);


getReturnArgName

public static java.lang.String getReturnArgName()
Returns internal name of the return value.


LangSpecificInit

public static java.lang.String LangSpecificInit()