Vuo
1.2.0
|
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.
Public Member Functions | |
VuoCompilerNode * | createReplacementBackingNode (VuoNode *nodeToBack, string backingNodeClassName, VuoCompiler *compiler) |
Returns a fully specialized node of class backingNodeClassName that will replace the node class of nodeToBack. | |
VuoType * | getOriginalPortType (VuoPortClass *portClass) |
Returns this port's type in the (hypothetical) unspecialized published output node class. | |
string | getOriginalGenericNodeClassName (void) |
Returns the original node's class name (without any type suffixes). | |
string | getOriginalGenericNodeClassDescription (void) |
Returns the original node's class description (i.e., nothing). | |
VuoNodeSet * | getOriginalGenericNodeSet (void) |
Returns the original node's node set (i.e., none). | |
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. | |
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. | |
![]() | |
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. | |
bool | isFullySpecialized (void) |
Returns true if this node class has no unspecialized generic types. | |
string | getDependencyName (void) |
If the backing node class exists, this function is performed on the backing node class instead of this node class. | |
![]() | |
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 . | |
virtual | ~VuoCompilerNodeClass (void) |
Destructor. | |
bool | isSubcomposition (void) |
Returns true if this node class is a subcomposition (implemented in Vuo language, as opposed to text code). | |
![]() | |
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. | |
![]() | |
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. | |
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. | |
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. | |
bool | isBuiltIn (void) |
Returns true if this module is one of the built-in modules distributed with Vuo. | |
void | setBuiltIn (bool builtIn) |
Sets whether this module is one of the built-in modules distributed with Vuo. | |
Static Public Member Functions | |
static VuoNodeClass * | newNodeClass (vector< VuoPublishedPort * > publishedOutputPorts) |
Returns a node class with an input port corresponding to (same name, same type) each of publishedOutputPorts. | |
![]() | |
static VuoNodeClass * | newNodeClass (string nodeClassName, VuoCompiler *compiler, dispatch_queue_t llvmQueue) |
Generates a specalized node class from a generic node class. | |
static VuoCompilerNodeClass * | getNodeClassForNode (VuoCompilerNodeClass *origNodeClass, VuoCompiler *compiler) |
Returns the node class to use for instantiating a node within a composition. | |
static void | replaceGenericTypesWithBacking (string &nodeClassSource) |
Replaces all occurrences of generic type names in the node class source code with a default actual type name. | |
![]() | |
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. | |
Additional Inherited Members | |
![]() | |
VuoCompilerSpecializedNodeClass (string nodeClassName, Module *module) | |
Creates a specialized node class implementation from an LLVM module, and creates its corresponding base VuoNodeClass . | |
VuoCompilerSpecializedNodeClass (VuoCompilerSpecializedNodeClass *compilerNodeClass) | |
Creates a new compiler node class and creates a new base VuoNodeClass , both from compilerNodeClass . | |
VuoCompilerSpecializedNodeClass (VuoNodeClass *baseNodeClass) | |
Creates a new implementation-less compiler node class, using the given node class for its base VuoNodeClass. | |
![]() | |
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. | |
![]() | |
map< string, string > | specializedForGenericTypeName |
The type name that replaces each generic type name in the original generic node class. | |
|
virtual |
Returns a fully specialized node of class backingNodeClassName that will replace the node class of nodeToBack.
Reimplemented from VuoCompilerSpecializedNodeClass.
|
virtual |
Returns the name for the published output node class that would result if the given specialized type were substituted for the generic item type.
Reimplemented from VuoCompilerSpecializedNodeClass.
|
virtual |
Returns the name for the published output node class that would result if the given ports were changed back to their original types.
Reimplemented from VuoCompilerSpecializedNodeClass.
|
virtual |
Returns the original node's class description (i.e., nothing).
Reimplemented from VuoCompilerSpecializedNodeClass.
|
virtual |
Returns the original node's class name (without any type suffixes).
Reimplemented from VuoCompilerSpecializedNodeClass.
|
virtual |
Returns the original node's node set (i.e., none).
Reimplemented from VuoCompilerSpecializedNodeClass.
|
virtual |
Returns this port's type in the (hypothetical) unspecialized published output node class.
Reimplemented from VuoCompilerSpecializedNodeClass.
|
static |
Returns a node class with an input port corresponding to (same name, same type) each of publishedOutputPorts.