Vuo
0.6.0
|
The compiler detail class for VuoNodeClass
.
Public Member Functions | |
VuoNode * | newNode (string title="", double x=0, double y=0) |
Creates a substantial base node instance from this node class. | |
VuoNode * | newNode (VuoNode *nodeToCopyMetadataFrom) |
Creates a substantial base node instance with its metadata copied from the existing nodeToCopyMetadataFrom . | |
string | getClassIdentifier (void) |
The unique class name for this node class, rendered as an identifier in the generated code. | |
Function * | getEventFunction (void) |
Returns an LLVM Function for this node class's implementation of the nodeEvent or nodeInstanceEvent function. | |
Function * | getInitFunction (void) |
If this node class is stateful, returns an LLVM Function for this node class's implementation of the nodeInstanceInit function. | |
Function * | getFiniFunction (void) |
If this node class is stateful, returns an LLVM Function for this node class's implementation of the nodeInstanceFini function. | |
Function * | getCallbackStartFunction (void) |
If this node class is stateful, returns an LLVM Function for this node class's implementation of the nodeInstanceTriggerStart function. | |
Function * | getCallbackUpdateFunction (void) |
If this node class is stateful, returns an LLVM Function for this node class's implementation of the nodeInstanceTriggerUpdate function. | |
Function * | getCallbackStopFunction (void) |
If this node class is stateful, returns an LLVM Function for this node class's implementation of the nodeInstanceTriggerStop function. | |
VuoCompilerInstanceDataClass * | getInstanceDataClass (void) |
If this node class is stateful, returns the instance data class. | |
string | getDoxygenDocumentation (void) |
Returns a string containing documentation for this node class in Doxygen format. | |
string | getDefaultSpecializedTypeName (string genericTypeName) |
If this node class is generic, returns the default specialized types to replace the generic type with when creating an instance. | |
![]() | |
VuoBaseDetail (string description, VuoNodeClass *base) | |
Creates a VuoNodeClass detail class. | |
VuoNodeClass * | getBase (void) const |
Returns the VuoNodeClass detail class instance's base class instance. | |
void | setBase (VuoNodeClass *base) |
Sets the VuoNodeClass detail class instance's base class instance. | |
![]() | |
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. | |
vector< string > | getDependencies (void) |
Returns a list of this VuoCompilerModule's 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. | |
VuoModule * | getPseudoBase (void) |
Returns the (psuedo) base for this (psuedo) compiler detail class. | |
Static Public Member Functions | |
static VuoNodeClass * | newNodeClass (string nodeClassName, Module *module) |
Creates a new substantial VuoNodeClass from the node class definition in the module. | |
static VuoNodeClass * | newNodeClassWithoutImplementation (VuoNodeClass *baseNodeClass) |
Creates a new implementation-less compiler node class, using the given node class for its base VuoNodeClass. | |
![]() | |
static VuoCompilerModule * | newModule (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. | |
Protected Member Functions | |
VuoCompilerNodeClass (string className, Module *module) | |
Creates a node class implementation from an LLVM module, and creates its corresponding base VuoNodeClass . | |
VuoCompilerNodeClass (VuoCompilerNodeClass *compilerNodeClass) | |
Creates a new compiler node class and creates a new base VuoNodeClass , both from compilerNodeClass . | |
VuoCompilerNodeClass (VuoNodeClass *baseNodeClass) | |
Creates a new implementation-less compiler node class, using the given node class for its base VuoNodeClass. | |
VuoPortClass * | getInputPortClassWithName (string portName) |
Returns the input port class matching the specified portName , if one exists. | |
VuoPortClass * | getOutputPortClassWithName (string portName) |
Returns the output port class matching the specified portName , if one exists. | |
![]() | |
VuoCompilerModule (VuoModule *base, Module *module) | |
Creates a VuoCompilerModule associated with the given LLVM module, as a pseudo compiler detail class of the given VuoModule. | |
virtual | ~VuoCompilerModule () |
Destructor. | |
string | nameForGlobal (string genericGlobalVarOrFuncName) |
Returns the mangled name for a function or global variable. | |
void | renameGlobalVarsAndFuncs (void) |
Renames the global variables and functions within the LLVM module so that they are unique to this VuoCompilerModule. | |
Static Protected Member Functions | |
static void | parseGenericTypes (json_object *moduleDetails, map< string, string > &defaultSpecializedForGenericTypeName, map< string, set< string > > &compatibleSpecializedForGenericTypeName) |
Parses the "genericTypes" portion of a node class's metadata. | |
![]() | |
static string | parseString (json_object *o, string key) |
Parses the string value for key in the top level of the JSON object. | |
static int | parseInt (json_object *o, string key) |
Parses the integer value for key in the top level of the JSON object. | |
static bool | parseBool (json_object *o, string key) |
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 | |
map< string, string > | defaultSpecializedForGenericTypeName |
If this node class is generic, use these specialized types when creating an instance. | |
![]() | |
struct json_object * | moduleDetails |
This module's metadata, found in the argument to VuoModuleMetadata in the module definition. | |
vector< string > | dependencies |
The dependencies found in this module's metadata. | |
Module * | module |
The LLVM module that defines this node class or type. | |
VuoModule * | base |
The (pseudo) base for this (pseudo) compiler detail class. | |
VuoCompilerBitcodeParser * | parser |
The parser of the LLVM module. | |
Friends | |
class | TestVuoCompilerType |
class | TestVuoCompilerNodeClass |
|
protected |
Creates a node class implementation from an LLVM module, and creates its corresponding base VuoNodeClass
.
|
protected |
Creates a new compiler node class and creates a new base VuoNodeClass
, both from compilerNodeClass
.
|
protected |
Creates a new implementation-less compiler node class, using the given node class for its base VuoNodeClass.
Function * VuoCompilerNodeClass::getCallbackStartFunction | ( | void | ) |
If this node class is stateful, returns an LLVM Function for this node class's implementation of the nodeInstanceTriggerStart
function.
Otherwise null.
Function * VuoCompilerNodeClass::getCallbackStopFunction | ( | void | ) |
If this node class is stateful, returns an LLVM Function for this node class's implementation of the nodeInstanceTriggerStop
function.
Otherwise null.
Function * VuoCompilerNodeClass::getCallbackUpdateFunction | ( | void | ) |
If this node class is stateful, returns an LLVM Function for this node class's implementation of the nodeInstanceTriggerUpdate
function.
Otherwise null.
string VuoCompilerNodeClass::getClassIdentifier | ( | void | ) |
The unique class name for this node class, rendered as an identifier in the generated code.
Possible characters: [A-Za-z0-9_]
string VuoCompilerNodeClass::getDefaultSpecializedTypeName | ( | string | genericTypeName | ) |
If this node class is generic, returns the default specialized types to replace the generic type with when creating an instance.
string VuoCompilerNodeClass::getDoxygenDocumentation | ( | void | ) |
Returns a string containing documentation for this node class in Doxygen format.
Function * VuoCompilerNodeClass::getEventFunction | ( | void | ) |
Returns an LLVM Function for this node class's implementation of the nodeEvent
or nodeInstanceEvent
function.
Function * VuoCompilerNodeClass::getFiniFunction | ( | void | ) |
If this node class is stateful, returns an LLVM Function for this node class's implementation of the nodeInstanceFini
function.
Otherwise null.
Function * VuoCompilerNodeClass::getInitFunction | ( | void | ) |
If this node class is stateful, returns an LLVM Function for this node class's implementation of the nodeInstanceInit
function.
Otherwise null.
|
protected |
Returns the input port class matching the specified portName
, if one exists.
Otherwise null.
VuoCompilerInstanceDataClass * VuoCompilerNodeClass::getInstanceDataClass | ( | void | ) |
If this node class is stateful, returns the instance data class.
Otherwise null.
|
protected |
Returns the output port class matching the specified portName
, if one exists.
Otherwise null.
VuoNode * VuoCompilerNodeClass::newNode | ( | string | title = "" , |
double | x = 0 , |
||
double | y = 0 |
||
) |
Creates a substantial base node instance from this node class.
Creates a substantial base node instance with its metadata copied from the existing nodeToCopyMetadataFrom
.
|
static |
Creates a new substantial VuoNodeClass
from the node class definition in the module.
If the module does not contain a node class definition, returns NULL.
|
static |
Creates a new implementation-less compiler node class, using the given node class for its base VuoNodeClass.
|
staticprotected |
Parses the "genericTypes" portion of a node class's metadata.
|
protected |
If this node class is generic, use these specialized types when creating an instance.