Vuo  0.4.8
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
VuoCompilerNodeClass Class Reference

Description

The compiler detail class for VuoNodeClass.

Public Member Functions

VuoNodenewNode (string displayName="", double x=0, double y=0)
 Creates a substantial base node instance from this node class.
 
VuoNodenewNode (VuoCompilerNode *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 nodeInstanceCallbackStart function.
 
Function * getCallbackUpdateFunction (void)
 If this node class is stateful, returns an LLVM Function for this node class's implementation of the nodeInstanceCallbackUpdate function.
 
Function * getCallbackStopFunction (void)
 If this node class is stateful, returns an LLVM Function for this node class's implementation of the nodeInstanceCallbackStop function.
 
VuoCompilerInstanceDataClassgetInstanceDataClass (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.
 
- Public Member Functions inherited from VuoBaseDetail< VuoNodeClass >
 VuoBaseDetail (string description, VuoNodeClass *base)
 Creates a VuoNodeClass detail class.
 
VuoNodeClassgetBase (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.
 
- Public Member Functions inherited from VuoCompilerModule
vector< string > getDependencies (void)
 Returns a list of this VuoCompilerModule's dependencies.
 
Module * getModule (void)
 Returns this VuoCompilerModule's LLVM module, which other LLVM modules can link to.
 

Static Public Member Functions

static VuoNodeClassnewNodeClass (string nodeClassName, Module *module)
 Creates a new substantial VuoNodeClass from the node class definition in the module.
 
static VuoNodeClasscreatePublishedInputNodeClass (vector< VuoPortClass * > outputPortClasses)
 Generates a node class for the "vuo.in" node in the current composition.
 
- 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.
 

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.
 
- Protected Member Functions inherited from VuoCompilerModule
 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 parseString (json_object *o, string key)
 Parses the string value for key in the top level of the JSON object.
 
int parseInt (json_object *o, string key)
 Parses the integer value for key in the top level of the JSON object.
 
bool parseBool (json_object *o, string key)
 Parses the boolean value for key in the top level of the JSON object.
 
vector< string > parseArrayOfStrings (json_object *o, string key)
 Parses the array-of-strings value for key in the top level of the JSON object.
 
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.
 

Friends

class TestVuoCompilerType
 
class TestVuoCompilerNodeClass
 

Additional Inherited Members

- Static Protected Member Functions inherited from VuoCompilerModule
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_object * moduleDetails
 This module's metadata, found in the argument to VuoModuleDetails 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.
 
VuoModulebase
 The (pseudo) base for this (pseudo) compiler detail class.
 
VuoCompilerBitcodeParserparser
 The parser of the LLVM module.
 

Member Function Documentation

VuoNodeClass * VuoCompilerNodeClass::createPublishedInputNodeClass ( vector< VuoPortClass * >  outputPortClasses)
static

Generates a node class for the "vuo.in" node in the current composition.

The node class has a trigger output port for each published input port.

Function * VuoCompilerNodeClass::getCallbackStartFunction ( void  )

If this node class is stateful, returns an LLVM Function for this node class's implementation of the nodeInstanceCallbackStart 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 nodeInstanceCallbackStop 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 nodeInstanceCallbackUpdate 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_]

Example:
vuo_math_lessThan_i64
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.

VuoCompilerInstanceDataClass * VuoCompilerNodeClass::getInstanceDataClass ( void  )

If this node class is stateful, returns the instance data class.

Otherwise null.

VuoNodeClass * VuoCompilerNodeClass::newNodeClass ( string  nodeClassName,
Module *  module 
)
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.


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