gov.llnl.babel.backend.ucxx
Class CxxImplSource

java.lang.Object
  extended by gov.llnl.babel.backend.ucxx.CxxImplSource

public class CxxImplSource
extends java.lang.Object

Create and write a header for a Cxx C extension class to wrap a BABEL extendable in a Cxx object. The header has to expose a function to create a wrapped IOR, a function to check if a PyObject is an instance of this extension type, and an import macro.


Constructor Summary
CxxImplSource(Extendable ext, Context context)
          Create an object capable of generating the header file for a BABEL extendable.
 
Method Summary
 void addSplicerBlock(java.lang.String ext, Method method, boolean addDefaults, java.lang.String defComment)
          Add splicer block.
 void generateCode()
          Generate the header file for the extendable with which this object was created.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CxxImplSource

public CxxImplSource(Extendable ext,
                     Context context)
Create an object capable of generating the header file for a BABEL extendable.

Parameters:
ext - an interface or class symbol that needs a header file for a Cxx C extension class.
Method Detail

addSplicerBlock

public void addSplicerBlock(java.lang.String ext,
                            Method method,
                            boolean addDefaults,
                            java.lang.String defComment)
Add splicer block.

Parameters:
ext - splicer block-specific name extension.
method - Either a method instance, if splicer is for a method, or null.
addDefaults - TRUE if splicer defaults to be added for method; otherwise, FALSE.
defComment - Default comment (for non-method splicer blocks).

generateCode

public void generateCode()
                  throws CodeGenerationException
Generate the header file for the extendable with which this object was created.

Throws:
CodeGenerationException - this is a catch all exception for problems during the code generation phase.