|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectgov.llnl.babel.backend.cxx.Cxx
public class Cxx
Class Cxx
contains common C++ language binding routines
shared by the C++ backend code generators. This class simply collects
many common C+ binding routines into one place.
Field Summary | |
---|---|
static int |
FILE_ROLE_IMPL
|
static int |
FILE_ROLE_MAX
|
static int |
FILE_ROLE_MIN
|
static int |
FILE_ROLE_NONE
|
static int |
FILE_ROLE_SKEL
|
static int |
FILE_ROLE_STUB
|
static java.lang.String[] |
FILE_ROLE_SUFFIX
|
static int |
FILE_TYPE_C_HEADER
|
static int |
FILE_TYPE_C_SOURCE
|
static int |
FILE_TYPE_CXX_HEADER
|
static int |
FILE_TYPE_CXX_SOURCE
|
static java.lang.String[] |
FILE_TYPE_EXTENSION
|
static int |
FILE_TYPE_MAX
|
static int |
FILE_TYPE_MIN
|
static int |
FILE_TYPE_NONE
|
static java.lang.String |
FUNCTION_RESULT
|
static java.lang.String |
NULL
|
static java.lang.String |
RAW_ARRAY_EXT
|
Constructor Summary | |
---|---|
Cxx()
|
Method Summary | |
---|---|
static void |
beginExternCRegion(LanguageWriterForCxx writer)
begin a region of method calls with C linkage |
static java.lang.String |
constCast(java.lang.String newtype,
java.lang.String arg)
generate a constCast |
static LanguageWriterForCxx |
createHeader(Symbol symbol,
int role,
java.lang.String filegroup)
Create an empty header file and return the language writer to create subsequent content. |
static LanguageWriterForCxx |
createSource(Symbol symbol,
int role,
java.lang.String filegroup)
Create an empty source file and return the language writer to create subsequent content. |
static void |
endExternCRegion(LanguageWriterForCxx writer)
end region of method calls with C linkage |
static void |
generateArgumentList(LanguageWriterForCxx writer,
Method method,
boolean rarrays)
|
static java.lang.String |
generateFilename(java.lang.String symbolName,
int role,
int ftype)
Generate the filename associated with a symbol identifier. |
static java.lang.String |
generateFilename(SymbolID id,
int role,
int ftype)
Generate the filename associated with a symbol identifier. |
static java.lang.String |
generateFunctionDeclaration(Method m,
Extendable d_ext,
java.lang.String d_self,
boolean rarrays)
|
static java.util.Set |
generateImplDependencyIncludes(LanguageWriterForCxx writer,
Extendable ext,
boolean removeSelf)
Generates include directives for all the extendables that this extendable inherits from. |
static java.util.Set |
generateIncludeSet(Extendable ext)
Generate the set of SymbolID's that this Extendable must #include. |
static java.lang.String |
generateInitialization(Method m,
Extendable d_ext,
java.lang.String d_self)
|
static void |
generateInlineMethodSignature(LanguageWriterForCxx writer,
Method method,
java.lang.String altcomment,
int role,
boolean isSuper)
|
static java.lang.String |
generateIORCall(Method m,
Extendable d_ext,
java.lang.String d_self,
boolean isSuper,
boolean rarrays)
|
static void |
generateMethodSignature(LanguageWriterForCxx writer,
Method method,
java.lang.String suffix,
java.lang.String altcomment,
int role,
boolean rarrays)
|
static java.lang.String |
generatePostIORCall(Method m,
Extendable d_ext,
java.lang.String d_self,
boolean rarrays)
|
static java.lang.String |
generatePreIORCall(Method m,
Extendable d_ext,
java.lang.String d_self,
boolean rarrays)
Function generates argument initialization prior to IOR call. |
static java.lang.String |
generateRoleDescription(SymbolID id,
int role)
Generate the role description associated with the symbol identifier and the specified role of the file. |
static java.util.Set |
generateSourceIncludes(LanguageWriterForCxx writer,
Extendable ext)
Generates include directives for all the Babel clases used in this .cc file |
static void |
generateThrowsList(LanguageWriterForCxx writer,
Method method,
boolean canThrowNullIORException)
|
static java.lang.String |
generateThrowsList(Method method,
boolean canThrowNullIORException)
|
static java.lang.String |
getArgModeComment(Argument arg)
|
static java.lang.String |
getArgumentString(Argument arg,
boolean rarrays)
Generate a C++ argument string for the specified sidl argument. |
static java.lang.String |
getCxxString(Type type,
boolean rarrays)
Convert the type to a Cxx representation in string form |
static java.lang.String |
getEnumName(SymbolID id)
Convert a sidl enumerated type into its symbol name, which is just the colon separated symbol name |
static java.lang.String |
getFileExtension(int ftype)
Returns the appropriate file extension String based on
the file type, prepended with the period (e.g., ".hh"). |
static java.lang.String |
getFileSuffix(int role)
Returns the appropriate String suffix associated with
the specified role. |
static java.util.Set |
getFrontIncludes(Extendable ext)
Generates include directives for all the extendables that this extendable inherits from. |
static java.lang.String |
getIORCall(java.lang.String objName,
Type t)
|
static java.lang.String |
getMethodImplName(SymbolID id,
java.lang.String methodName)
Generate the impl method's name. |
static java.lang.String |
getMethodSkelName(SymbolID id,
Method method)
Generate the skel method's name. |
static java.lang.String |
getMethodSkelName(SymbolID id,
java.lang.String methodName)
Generate the skel method's name. |
static java.lang.String |
getMethodStubName(SymbolID id,
java.lang.String methodName)
Generate the stub method's name. |
static java.lang.String |
getObjectName(SymbolID id)
Convert a sidl symbol name into its object name -- for the purposes of this package that means convert it into its typedef object name. |
static java.lang.String |
getRarrayReturnString(Type type)
Generate a Cxx return string for the specified sidl type. |
static java.lang.String |
getReturnString(Type type)
Generate a Cxx return string for the specified sidl type. |
static java.lang.String |
getSymbolName(SymbolID id)
|
static java.lang.String |
getSymbolName(SymbolID id,
java.lang.String postfix)
Convert a symbol name into its C++ identifier. |
static java.lang.String |
getSymbolNameWithoutLeadingColons(SymbolID id,
java.lang.String postfix)
|
static boolean |
inlineStub(Method m)
Determines if the stub function should be inlined based on the simplicity of the arguments and return type. |
static void |
nestPackagesInNamespaces(LanguageWriterForCxx writer,
Symbol symbol)
Generate a the namespaces in which the C++ class is nested. |
static java.lang.String |
reinterpretCast(java.lang.String newtype,
java.lang.String arg)
generate a reinterpretCast |
static void |
unnestPackagesInNamespaces(LanguageWriterForCxx writer,
Symbol symbol)
Close the namespaces in which the C++ class is nested. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String FUNCTION_RESULT
public static final java.lang.String NULL
public static final java.lang.String RAW_ARRAY_EXT
public static final int FILE_ROLE_MIN
public static final int FILE_ROLE_MAX
public static final int FILE_ROLE_NONE
public static final int FILE_ROLE_IMPL
public static final int FILE_ROLE_SKEL
public static final int FILE_ROLE_STUB
public static final java.lang.String[] FILE_ROLE_SUFFIX
public static final int FILE_TYPE_MIN
public static final int FILE_TYPE_MAX
public static final int FILE_TYPE_NONE
public static final int FILE_TYPE_CXX_HEADER
public static final int FILE_TYPE_CXX_SOURCE
public static final int FILE_TYPE_C_HEADER
public static final int FILE_TYPE_C_SOURCE
public static final java.lang.String[] FILE_TYPE_EXTENSION
Constructor Detail |
---|
public Cxx()
Method Detail |
---|
public static java.lang.String getFileSuffix(int role)
String
suffix associated with
the specified role.
role
- the int
associated with the role of the
file to differentiate skeletons, stubs, impls, etc.public static java.lang.String getFileExtension(int ftype)
String
based on
the file type, prepended with the period (e.g., ".hh").
ftype
- the int
associated with the type of the
file to differentiate between header and sourcepublic static java.lang.String generateFilename(SymbolID id, int role, int ftype)
id
- the SymbolID
of the Symbol
role
- the int
associated with the role of the
file to differentiate skeletons, stubs, impls, etc.ftype
- the int
associated with the type of the
file to differentiate between header and source
When the --generate-subdirs and --short-file-names options are used
simultaneously, the generated file names will not include the package
names of the packages containing the symbol whose SymbolID is passed
as an argument. Thus, either long or short names must be used in all
clients or servers that have interdependencies; mixing short and long
names will result in compile and/or runtime errors.public static java.lang.String generateFilename(java.lang.String symbolName, int role, int ftype)
symbolName
- the stringified name of the Symbol
role
- the int
associated with the role of the
file to differentiate skeletons, stubs, impls, etc.ftype
- the int
associated with the type of the
file to differentiate between header and sourcepublic static java.lang.String generateRoleDescription(SymbolID id, int role)
id
- the SymbolID
of the Symbol
role
- the int
associated with the role of the
file to differentiate skeletons, stubs, impls, etc.public static LanguageWriterForCxx createHeader(Symbol symbol, int role, java.lang.String filegroup) throws CodeGenerationException
symbol
- the SymbolID
of the Symbol
role
- the int
identifying the role of the
file to differentiate skeletons, stubs, impls, etc.filegroup
- a String
to associate the file with
for possible makefile generation
CodeGenerationException
public static LanguageWriterForCxx createSource(Symbol symbol, int role, java.lang.String filegroup) throws CodeGenerationException
symbol
- the SymbolID
of the Symbol
role
- the int
identifying the role of the
file to differentiate skeletons, stubs, impls, etc.filegroup
- a String
to associate the file with
for possible makefile generation
CodeGenerationException
public static void nestPackagesInNamespaces(LanguageWriterForCxx writer, Symbol symbol)
writer
- the language writer for C++symbol
- the symbol begin written to this file, containing
the heirarchy of packages to which it belongs.unnestPackagesInNamespaces(gov.llnl.babel.backend.writers.LanguageWriterForCxx, gov.llnl.babel.symbols.Symbol)
public static void unnestPackagesInNamespaces(LanguageWriterForCxx writer, Symbol symbol)
writer
- the language writer for C++symbol
- the symbol begin written to this file, containing
the heirarchy of packages to which it belongs.nestPackagesInNamespaces(gov.llnl.babel.backend.writers.LanguageWriterForCxx, gov.llnl.babel.symbols.Symbol)
public static void beginExternCRegion(LanguageWriterForCxx writer)
writer
- languageWriter for the filepublic static void endExternCRegion(LanguageWriterForCxx writer)
writer
- languageWriter for the filepublic static java.lang.String getSymbolName(SymbolID id, java.lang.String postfix)
id
- the SymbolID
of the Symbol
.
& @param postfix an optional postfix for the class itselfpublic static java.lang.String getSymbolName(SymbolID id)
public static java.lang.String getSymbolNameWithoutLeadingColons(SymbolID id, java.lang.String postfix)
getSymbolName(gov.llnl.babel.symbols.SymbolID, java.lang.String)
public static java.lang.String getEnumName(SymbolID id)
id
- the SymbolID
of the Symbol
.public static java.lang.String getObjectName(SymbolID id)
id
- the SymbolID
of the Symbol
.public static java.lang.String reinterpretCast(java.lang.String newtype, java.lang.String arg)
newtype
- the new type to cast toarg
- the variable to cast
public static java.lang.String constCast(java.lang.String newtype, java.lang.String arg)
newtype
- the new type to cast toarg
- the variable to cast
public static java.lang.String getCxxString(Type type, boolean rarrays) throws CodeGenerationException
CodeGenerationException
public static java.lang.String getReturnString(Type type) throws CodeGenerationException
type
- the Type
whose return string is being built.
CodeGenerationException
public static java.lang.String getRarrayReturnString(Type type) throws CodeGenerationException
type
- the Type
whose return string is being built.
CodeGenerationException
public static java.lang.String getArgModeComment(Argument arg)
public static java.lang.String getArgumentString(Argument arg, boolean rarrays) throws CodeGenerationException
CodeGenerationException
public static java.lang.String getIORCall(java.lang.String objName, Type t)
public static java.lang.String getMethodImplName(SymbolID id, java.lang.String methodName)
id
- the SymbolID
of the Symbol
associated with the method.methodName
- the String
version of the name of the
method whose impl name is being built.public static java.lang.String getMethodSkelName(SymbolID id, java.lang.String methodName)
id
- the SymbolID
of the Symbol
associated with the method.methodName
- the String
version of the name of the
method whose skel name is being built.public static java.lang.String getMethodSkelName(SymbolID id, Method method)
id
- the SymbolID
of the Symbol
associated with the method.method
- the methodpublic static java.lang.String getMethodStubName(SymbolID id, java.lang.String methodName)
id
- the SymbolID
of the Symbol
associated with the method.methodName
- the String
version of the name of the
method whose impl name is being built.public static java.util.Set generateIncludeSet(Extendable ext)
public static java.util.Set getFrontIncludes(Extendable ext) throws CodeGenerationException
writer
- Language writer for C++ext
- Extendible (Class or Interface) to generate dependenciesremoveSelf
- True if called from a Stub generator since this
would cause an inclusion loop in Stub.h
False if called from an impl generator since
the impl may need to know about the stub.
CodeGenerationException
public static java.util.Set generateImplDependencyIncludes(LanguageWriterForCxx writer, Extendable ext, boolean removeSelf) throws CodeGenerationException
writer
- Language writer for C++ext
- Extendible (Class or Interface) to generate dependenciesremoveSelf
- True if called from a Stub generator since this
would cause an inclusion loop in Stub.h
False if called from an impl generator since
the impl may need to know about the stub.
CodeGenerationException
public static void generateMethodSignature(LanguageWriterForCxx writer, Method method, java.lang.String suffix, java.lang.String altcomment, int role, boolean rarrays) throws CodeGenerationException
CodeGenerationException
public static void generateInlineMethodSignature(LanguageWriterForCxx writer, Method method, java.lang.String altcomment, int role, boolean isSuper) throws CodeGenerationException
CodeGenerationException
public static void generateArgumentList(LanguageWriterForCxx writer, Method method, boolean rarrays) throws CodeGenerationException
CodeGenerationException
public static void generateThrowsList(LanguageWriterForCxx writer, Method method, boolean canThrowNullIORException)
public static java.lang.String generateThrowsList(Method method, boolean canThrowNullIORException)
public static boolean inlineStub(Method m)
public static java.lang.String generateFunctionDeclaration(Method m, Extendable d_ext, java.lang.String d_self, boolean rarrays) throws CodeGenerationException
CodeGenerationException
public static java.lang.String generateInitialization(Method m, Extendable d_ext, java.lang.String d_self) throws CodeGenerationException
CodeGenerationException
public static java.lang.String generatePreIORCall(Method m, Extendable d_ext, java.lang.String d_self, boolean rarrays) throws CodeGenerationException
CodeGenerationException
public static java.lang.String generateIORCall(Method m, Extendable d_ext, java.lang.String d_self, boolean isSuper, boolean rarrays) throws CodeGenerationException
CodeGenerationException
public static java.lang.String generatePostIORCall(Method m, Extendable d_ext, java.lang.String d_self, boolean rarrays) throws CodeGenerationException
CodeGenerationException
public static java.util.Set generateSourceIncludes(LanguageWriterForCxx writer, Extendable ext) throws CodeGenerationException
writer
- Language writer for C++ext
- Extendible (Class or Interface) to generate dependencies
CodeGenerationException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |