gov.llnl.babel.backend.ucxx

Class CxxImplHeader


public class CxxImplHeader
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

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

Method Summary

void
addSplicerBlock(String ext, String defComment)
Add splicer block.
void
generateCode()
Generate the header file for the extendable with which this object was created.

Constructor Details

CxxImplHeader

public CxxImplHeader(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 Details

addSplicerBlock

public void addSplicerBlock(String ext,
                            String defComment)
Add splicer block.
Parameters:
ext - splicer block-specific name extension.
defComment - Default comment.

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.