A node class used when generating code for a composition to represent published output ports.
For each published output port, this node class has an input port with the same name and data type.
|
VuoCompilerNode * | createReplacementBackingNode (VuoNode *nodeToBack, string backingNodeClassName, VuoCompiler *compiler) |
| Returns a fully specialized node of class backingNodeClassName that will replace the node class of nodeToBack. More...
|
|
VuoType * | getOriginalPortType (VuoPortClass *portClass) |
| Returns this port's type in the (hypothetical) unspecialized published output node class. More...
|
|
string | getOriginalGenericNodeClassName (void) |
| Returns the original node's class name (without any type suffixes). More...
|
|
string | getOriginalGenericNodeClassDescription (void) |
| Returns the original node's class description (i.e., nothing). More...
|
|
VuoNodeSet * | getOriginalGenericNodeSet (void) |
| Returns the original node's node set (i.e., none). More...
|
|
string | createUnspecializedNodeClassName (set< VuoPortClass *> portClassesToUnspecialize) |
| Returns the name for the published output node class that would result if the given ports were changed back to their original types. More...
|
|
string | createSpecializedNodeClassNameWithReplacement (string genericTypeName, string specializedTypeName) |
| Returns the name for the published output node class that would result if the given specialized type were substituted for the generic item type. More...
|
|
void | updateBackingNodeClass (VuoNode *nodeToBack, VuoCompiler *compiler) |
| Updates the implementation for this VuoCompilerSpecializedNodeClass to be consistent with the backing types of nodeToBack, and updates the VuoCompilerNode of nodeToBack to be consistent with that implementation. More...
|
|
bool | isFullySpecialized (void) |
| Returns true if this node class has no unspecialized generic types. More...
|
|
string | getDependencyName (void) |
| If the backing node class exists, this function is performed on the backing node class instead of this node class. More...
|
|
VuoNode * | newNode (string title="", double x=0, double y=0) |
| Creates a substantial base node instance from this node class. More...
|
|
VuoNode * | newNode (VuoNode *nodeToCopyMetadataFrom) |
| Creates a substantial base node instance with its metadata copied from the existing nodeToCopyMetadataFrom . More...
|
|
virtual | ~VuoCompilerNodeClass (void) |
| Destructor. More...
|
|
bool | isSubcomposition (void) |
| Returns true if this node class is a subcomposition (implemented in Vuo language, as opposed to text code). More...
|
|
| VuoBaseDetail (string description, VuoNodeClass *base) |
| Creates a detail class. More...
|
|
VuoNodeClass * | getBase (void) const |
| Returns the detail class instance's base class instance. More...
|
|
void | setBase (VuoNodeClass *base) |
| Sets the detail class instance's base class instance. More...
|
|
virtual | ~VuoCompilerModule (void) |
| Destructor. More...
|
|
VuoCompilerTargetSet | parseTargetSet (json_object *o, string key) |
| Parses the target set value for key in the top level of the JSON object. More...
|
|
VuoCompilerTargetSet::MacVersion | parseMacVersion (string version) |
| Parses a Mac OS version from a string. More...
|
|
VuoCompilerTargetSet | getCompatibleTargets (void) |
| Returns the set of targets (operating system versions) with which this module is compatible. More...
|
|
Module * | getModule (void) |
| Returns this VuoCompilerModule's LLVM module, which other LLVM modules can link to. More...
|
|
VuoModule * | getPseudoBase (void) |
| Returns the (psuedo) base for this (psuedo) compiler detail class. More...
|
|
bool | getPremium (void) |
| Returns a boolean indicating whether this module contains premium content. More...
|
|
void | setPremium (bool premium) |
| Sets the boolean indicating whether this module contains premium content. More...
|
|
bool | isBuiltIn (void) |
| Returns true if this module is one of the built-in modules distributed with Vuo. More...
|
|
void | setBuiltIn (bool builtIn) |
| Sets whether this module is one of the built-in modules distributed with Vuo. More...
|
|
string | getModulePath (void) |
| Returns the file from which the LLVM module was loaded, or an empty string if the module was contained in an archive or generated by the compiler. More...
|
|
|
static VuoNodeClass * | newNodeClass (vector< VuoPublishedPort *> publishedOutputPorts) |
| Returns a node class with an input port corresponding to (same name, same type) each of publishedOutputPorts. More...
|
|
static VuoNodeClass * | newNodeClass (const std::string &nodeClassName, VuoCompiler *compiler, dispatch_queue_t llvmQueue, const set< string > &knownModuleKeys=set< string >()) |
| Generates a specalized node class from a generic node class. More...
|
|
static VuoCompilerNodeClass * | getNodeClassForNode (VuoCompilerNodeClass *origNodeClass, VuoCompiler *compiler) |
| Returns the node class to use for instantiating a node within a composition. More...
|
|
static void | replaceGenericTypesWithBacking (string &nodeClassSource) |
| Replaces all occurrences of generic type names in the node class source code with a default actual type name. More...
|
|
static VuoNodeClass * | newNodeClass (string nodeClassName, Module *module) |
| Creates a new substantial VuoNodeClass from the node class definition in the module. More...
|
|
static VuoNodeClass * | newNodeClassWithoutImplementation (VuoNodeClass *baseNodeClass) |
| Creates a new implementation-less compiler node class, using the given node class for its base VuoNodeClass. More...
|
|
static VuoCompilerModule * | newModule (const string &moduleKey, Module *module, const string &modulePath) |
| Instantiates a VuoCompilerModule (or child class) corresponding to the type of VuoCompilerModule defined in the LLVM module. More...
|
|
static Function * | declareFunctionInModule (Module *module, Function *function) |
| Copies the function's header into the LLVM module, if it's not already there. More...
|
|
|
| VuoCompilerSpecializedNodeClass (string nodeClassName, Module *module) |
| Creates a specialized node class implementation from an LLVM module, and creates its corresponding base VuoNodeClass . More...
|
|
| VuoCompilerSpecializedNodeClass (VuoCompilerSpecializedNodeClass *compilerNodeClass) |
| Creates a new compiler node class and creates a new base VuoNodeClass , both from compilerNodeClass . More...
|
|
| VuoCompilerSpecializedNodeClass (VuoNodeClass *baseNodeClass) |
| Creates a new implementation-less compiler node class, using the given node class for its base VuoNodeClass. More...
|
|
| VuoCompilerNodeClass (string className, Module *module) |
| Creates a node class implementation from an LLVM module, and creates its corresponding base VuoNodeClass . More...
|
|
| VuoCompilerNodeClass (VuoCompilerNodeClass *compilerNodeClass) |
| Creates a new compiler node class and creates a new base VuoNodeClass , both from compilerNodeClass. More...
|
|
| VuoCompilerNodeClass (VuoNodeClass *baseNodeClass) |
| Creates a new implementation-less compiler node class, using the given node class for its base VuoNodeClass. More...
|
|
VuoPortClass * | getInputPortClassWithName (string portName) |
| Returns the input port class matching the specified portName , if one exists. More...
|
|
VuoPortClass * | getOutputPortClassWithName (string portName) |
| Returns the output port class matching the specified portName , if one exists. More...
|
|
| VuoCompilerModule (VuoModule *base, Module *module) |
| Creates a VuoCompilerModule associated with the given LLVM module, as a pseudo compiler detail class of the given VuoModule. More...
|
|
string | nameForGlobal (string genericGlobalVarOrFuncName) |
| Returns the mangled name for a function or global variable. More...
|
|
void | renameGlobalVarsAndFuncs (void) |
| Renames the global variables and functions within the LLVM module so that they are unique to this VuoCompilerModule. More...
|
|
static void | parseGenericTypes (json_object *moduleDetails, map< string, string > &defaultSpecializedForGenericTypeName, map< std::string, vector< std::string > > &compatibleSpecializedForGenericTypeName) |
| Parses the "genericTypes" portion of a node class's metadata. More...
|
|
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. More...
|
|
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. More...
|
|
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. More...
|
|
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. More...
|
|
static string | nameForGlobal (string nameBeforeCompilation, string moduleKey) |
| Returns the mangled name for a function or global variable. More...
|
|
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. More...
|
|
map< string, string > | specializedForGenericTypeName |
| The type name that replaces each generic type name in the original generic node class. More...
|
|
map< string, string > | defaultSpecializedForGenericTypeName |
| If this node class is generic, use these specialized types when creating an instance. More...
|
|
struct json_object * | moduleDetails |
| This module's metadata, found in the argument to VuoModuleMetadata in the module definition. More...
|
|
set< string > | dependencies |
| The dependencies found in this module's metadata. More...
|
|
Module * | module |
| The LLVM module that defines this node class or type. More...
|
|
VuoModule * | base |
| The (pseudo) base for this (pseudo) compiler detail class. More...
|
|
VuoCompilerBitcodeParser * | parser |
| The parser of the LLVM module. More...
|
|
bool | isPremium |
| A boolean indicating whether this module contains premium content. More...
|
|