Vuo  1.1.1
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | List of all members
VuoCompilerGenericType Class Reference

Description

The compiler detail class for VuoGenericType.

This class associates a generic type with a "backing type" — a non-generic type to be substituted in for the generic type when compiling/linking a node class or composition.

Public Member Functions

string getBackingTypeName (void)
 Returns the non-generic type to use for compiling/linking a node class or composition with this generic type.
 
- Public Member Functions inherited from VuoCompilerType
Value * generateValueFromStringFunctionCall (Module *module, BasicBlock *block, Value *arg)
 Generates a call to [Type]_makeFromString().
 
Value * generateStringFromValueFunctionCall (Module *module, BasicBlock *block, Value *arg)
 Generates a call to [Type]_getString().
 
Value * generateInterprocessStringFromValueFunctionCall (Module *module, BasicBlock *block, Value *arg)
 Generates a call to [Type]_getInterprocessString().
 
Value * generateSummaryFromValueFunctionCall (Module *module, BasicBlock *block, Value *arg)
 Generates a call to [Type]_getSummary().
 
void generateRetainCall (Module *module, BasicBlock *block, Value *arg)
 Generates a call to [Type]_retain().
 
void generateReleaseCall (Module *module, BasicBlock *block, Value *arg)
 Generates a call to [Type]_release().
 
Type * getType (void)
 Returns the LLVM type for this Vuo type.
 
Type * getFunctionParameterType (Type **secondType)
 Returns the LLVM type for this Vuo type when it appears as a function parameter.
 
Attributes getFunctionParameterAttributes (void)
 Returns the LLVM attributes for this Vuo type when it appears as a function parameter.
 
bool hasInterprocessStringFunction (void)
 Returns true if the type's getInterprocessString() function is defined.
 
- Public Member Functions inherited from VuoBaseDetail< VuoType >
 VuoBaseDetail (string description, VuoType *base)
 Creates a VuoType detail class.
 
VuoTypegetBase (void) const
 Returns the VuoType detail class instance's base class instance.
 
void setBase (VuoType *base)
 Sets the VuoType detail class instance's base class instance.
 
- Public Member Functions inherited from VuoCompilerModule
virtual ~VuoCompilerModule (void)
 Destructor.
 
VuoCompilerTargetSet parseTargetSet (json_object *o, string key)
 Parses the target set value for key in the top level of the JSON object.
 
VuoCompilerTargetSet::MacVersion parseMacVersion (string version)
 Parses a Mac OS version from a string.
 
virtual set< string > getDependencies (void)
 Returns a list of this VuoCompilerModule's dependencies.
 
virtual string getDependencyName (void)
 Returns the name that would represent this VuoCompilerModule in another VuoCompilerModule's list of dependencies.
 
VuoCompilerTargetSet getCompatibleTargets (void)
 Returns the set of targets (operating system versions) with which this module is compatible.
 
Module * getModule (void)
 Returns this VuoCompilerModule's LLVM module, which other LLVM modules can link to.
 
VuoModulegetPseudoBase (void)
 Returns the (psuedo) base for this (psuedo) compiler detail class.
 
bool getPremium (void)
 Returns a boolean indicating whether this module contains premium content.
 
void setPremium (bool premium)
 Sets the boolean indicating whether this module contains premium content.
 

Static Public Member Functions

static VuoCompilerGenericTypenewGenericType (VuoGenericType *baseType, map< string, VuoCompilerType * > types)
 Creates a VuoCompilerGenericType and makes it the compiler detail object for baseType.
 
static VuoCompilerGenericTypenewGenericType (VuoGenericType *baseType, VuoCompiler *compiler)
 Creates a VuoCompilerGenericType and makes it the compiler detail object for baseType.
 
static string chooseBackingTypeName (string genericTypeName, vector< string > compatibleTypeNames)
 Returns the name of a non-generic type to use for compiling/linking a node class or composition with the given generic type.
 
- Static Public Member Functions inherited from VuoCompilerType
static VuoCompilerTypenewType (string typeName, Module *module)
 Creates a type from the type definition in the module.
 
static bool isListType (VuoCompilerType *type)
 Returns true if the type is a list type.
 
- Static Public Member Functions inherited from VuoCompilerModule
static VuoCompilerModulenewModule (string moduleKey, Module *module)
 Instantiates a VuoCompilerModule (or child class) corresponding to the type of VuoCompilerModule defined in the LLVM module.
 
static Function * declareFunctionInModule (Module *module, Function *function)
 Copies the function's header into the LLVM module, if it's not already there.
 

Additional Inherited Members

- Protected Member Functions inherited from VuoCompilerType
 VuoCompilerType (string typeName, Module *module)
 Creates a type from an LLVM module, and creates its corresponding base VuoType.
 
- Static Protected Member Functions inherited from VuoCompilerModule
static string parseString (json_object *o, string key, bool *foundValue=NULL)
 Parses the string value for key in the top level of the JSON object.
 
static int parseInt (json_object *o, string key, bool *foundValue=NULL)
 Parses the integer value for key in the top level of the JSON object.
 
static bool parseBool (json_object *o, string key, bool *foundValue=NULL)
 Parses the boolean value for key in the top level of the JSON object.
 
static vector< string > parseArrayOfStrings (json_object *o, string key)
 Parses the array-of-strings value for key in the top level of the JSON object.
 
static string nameForGlobal (string nameBeforeCompilation, string moduleKey)
 Returns the mangled name for a function or global variable.
 
static bool hasOriginalOrMangledGlobal (string nameBeforeCompilation, Module *module, string moduleKey)
 Returns true if the module contains a function or global variable with name nameBeforeCompilation or with the corresponding mangled name.
 
- Protected Attributes inherited from VuoCompilerModule
struct json_objectmoduleDetails
 This module's metadata, found in the argument to VuoModuleMetadata in the module definition.
 
set< string > dependencies
 The dependencies found in this module's metadata.
 
Module * module
 The LLVM module that defines this node class or type.
 
VuoModulebase
 The (pseudo) base for this (pseudo) compiler detail class.
 
VuoCompilerBitcodeParserparser
 The parser of the LLVM module.
 
bool isPremium
 A boolean indicating whether this module contains premium content.
 

Member Function Documentation

string VuoCompilerGenericType::chooseBackingTypeName ( string  genericTypeName,
vector< string >  compatibleTypeNames 
)
static

Returns the name of a non-generic type to use for compiling/linking a node class or composition with the given generic type.

Parameters
genericTypeNameThe generic type's name.
compatibleTypeNamesThe compatible specialized type names, as specified in a node class's "genericTypes" metadata. If this is non-empty, then the first item is chosen.
See Also
VuoModuleMetadata
string VuoCompilerGenericType::getBackingTypeName ( void  )

Returns the non-generic type to use for compiling/linking a node class or composition with this generic type.

VuoCompilerGenericType * VuoCompilerGenericType::newGenericType ( VuoGenericType baseType,
map< string, VuoCompilerType * >  types 
)
static

Creates a VuoCompilerGenericType and makes it the compiler detail object for baseType.

VuoCompilerGenericType * VuoCompilerGenericType::newGenericType ( VuoGenericType baseType,
VuoCompiler compiler 
)
static

Creates a VuoCompilerGenericType and makes it the compiler detail object for baseType.


The documentation for this class was generated from the following files: