A node class used when generating code for a composition to handle data storage of and event flow through published input ports.
Definition at line 18 of file VuoCompilerPublishedInputNodeClass.hh.
Public Member Functions | |
size_t | getInputPortIndexForPublishedInputPort (size_t publishedInputPortIndex) |
Returns the index of the input port on this node class that corresponds to the published port. More... | |
size_t | getOutputPortIndexForPublishedInputPort (size_t publishedInputPortIndex) |
Returns the index of the output port on this node class that corresponds to the published port. More... | |
Public Member Functions inherited from VuoCompilerSpecializedNodeClass | |
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... | |
set< string > | getDependencies (void) |
Returns the dependencies of the backing node class, if it exists, otherwise this node class. 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... | |
Public Member Functions inherited from VuoCompilerNodeClass | |
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 | isLikelyImageFilter (void) |
Returns true if this node class is likely an image filter, based on its image-type input and output port counts. More... | |
bool | isLikelyImageGenerator (void) |
Returns true if this node class is likely an image generator, based on its image-type input and output port counts. More... | |
bool | isLikelyImageTransition (void) |
Returns true if this node class is likely an image transition, based on its image-type input and output port counts. More... | |
int | getImagePortCount (bool isInput) |
Returns the number of image-type input or output ports belonging to this node class. More... | |
bool | isSubcomposition (void) |
Returns true if this node class is a subcomposition (implemented in Vuo language, as opposed to text code). More... | |
bool | isIsf (void) |
Returns true if this node class is implemented in ISF text code. More... | |
void | setSourcePath (const string &sourcePath) |
Stores the path of the source file for this node class. More... | |
string | getSourcePath (void) |
Returns the stored path of the source file for this node class. More... | |
void | setSourceCode (const string &sourceCode) |
Stores the source code for this node class. More... | |
string | getSourceCode (void) |
Returns the stored source code for this node class. More... | |
set< pair< string, string > > | getContainedNodes (void) |
Returns the nodes (node identifier and node class name) contained within this subcomposition. More... | |
Public Member Functions inherited from VuoBaseDetail< VuoNodeClass > | |
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... | |
Public Member Functions inherited from VuoCompilerModule | |
virtual | ~VuoCompilerModule (void) |
Destructor. More... | |
VuoCompilerCompatibility | parseCompatibility (json_object *o, string key) |
Parses the target set value for key in the top level of the JSON object. More... | |
VuoCompilerCompatibility | 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 (pseudo) base for this (pseudo) compiler detail class. 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 Public Member Functions | |
static VuoNodeClass * | newNodeClass (string nodeClassName, VuoCompiler *compiler, dispatch_queue_t llvmQueue) |
Returns a new node class with port names and types as specified by nodeClassName, or null if nodeClassName is not a valid published input node class name. More... | |
static VuoNodeClass * | newNodeClass (vector< VuoPublishedPort * > publishedInputPorts, dispatch_queue_t llvmQueue=nullptr) |
Returns a new node class with port names and types corresponding to publishedInputPorts. More... | |
static string | buildNodeClassName (const vector< VuoPublishedPort * > &publishedInputPorts) |
Creates a class name for a published input node with the given published input ports. More... | |
Static Public Member Functions inherited from VuoCompilerSpecializedNodeClass | |
static bool | hasGenericPortTypes (VuoCompilerNodeClass *nodeClass) |
Returns true if the node class has at least one unspecialized generic type. More... | |
static VuoNodeClass * | newNodeClass (const string &nodeClassName, VuoCompiler *compiler, dispatch_queue_t llvmQueue) |
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 bool | isSpecializationOfNodeClass (const string &potentialSpecializedNodeClassName, VuoCompilerNodeClass *potentialGenericNodeClass) |
Returns true if potentialSpecializedNodeClassName is one of the possible specializations of potentialGenericNodeClass. 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 Public Member Functions inherited from VuoCompilerNodeClass | |
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 Public Member Functions inherited from VuoCompilerModule | |
static VuoCompilerModule * | newModule (const string &moduleKey, Module *module, const string &modulePath, const VuoCompilerCompatibility &moduleCompatibility) |
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... | |
Additional Inherited Members | |
Protected Member Functions inherited from VuoCompilerPublishedNodeClass | |
VuoCompilerPublishedNodeClass (string nodeClassName, Module *module) | |
Creates a node class implementation from an LLVM module, and creates its corresponding base VuoNodeClass . More... | |
VuoCompilerPublishedNodeClass (VuoCompilerPublishedNodeClass *compilerNodeClass) | |
Creates a new compiler node class and a new base VuoNodeClass , both from compilerNodeClass . More... | |
VuoCompilerPublishedNodeClass (VuoNodeClass *baseNodeClass) | |
Creates a new implementation-less compiler node class, using the given node class for its base VuoNodeClass. More... | |
bool | parseNodeClassName (string nodeClassName, vector< string > &portNames, vector< string > &typeNames) VuoWarnUnusedResult |
If nodeClassName is a valid published input/output node class name, copies the port names and types from the node class name into portNames and typeNames and returns true. More... | |
string | buildNodeClassName (const vector< string > &portNames, const vector< VuoType * > &types) |
Creates a class name for a published input/output node with the given published input/output port names and types. More... | |
string | buildNodeClassNameFromPorts (const vector< VuoPublishedPort * > &publishedPorts) |
Creates a class name for a published input/output node with the given published input/output ports. More... | |
vector< string > | formUniquePortNames (const vector< VuoPublishedPort * > &publishedPorts) |
Returns the list of input port names that a published input/output node would have corresponding to publishedPorts. More... | |
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 input 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 input 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 input node class that would result if the given specialized type were substituted for the generic item type. More... | |
Protected Member Functions inherited from VuoCompilerSpecializedNodeClass | |
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... | |
Protected Member Functions inherited from VuoCompilerNodeClass | |
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... | |
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. 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 Protected Member Functions inherited from VuoCompilerPublishedNodeClass | |
static VuoNodeClass * | newNodeClass (const string &nodeClassName, VuoCompiler *compiler, dispatch_queue_t llvmQueue, VuoCompilerPublishedNodeClass *singleton) |
Returns a new node class with port names and types as specified by nodeClassName, or null if nodeClassName is not a valid published input/output node class name. More... | |
static VuoNodeClass * | newNodeClass (const vector< VuoPublishedPort * > &publishedPorts, dispatch_queue_t llvmQueue, VuoCompilerPublishedNodeClass *singleton) |
Returns a new node class with port names and types corresponding to publishedPorts. More... | |
Static Protected Member Functions inherited from VuoCompilerSpecializedNodeClass | |
static VuoPortClass * | copyPortClassFromModel (VuoPortClass *modelPortClass, bool isInput) |
Creates a new port class (base + compiler detail) with properties copied from modelPortClass (base + compiler detail). More... | |
Static Protected Member Functions inherited from VuoCompilerNodeClass | |
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 Protected Member Functions inherited from VuoCompilerModule | |
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... | |
Protected Attributes inherited from VuoCompilerSpecializedNodeClass | |
map< string, string > | specializedForGenericTypeName |
The type name that replaces each generic type name in the original generic node class. More... | |
Protected Attributes inherited from VuoCompilerNodeClass | |
map< string, string > | defaultSpecializedForGenericTypeName |
If this node class is generic, use these specialized types when creating an instance. More... | |
Protected Attributes inherited from VuoCompilerModule | |
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... | |
VuoCompilerCompatibility | compatibleTargets |
The set of targets with which this module is compatible. More... | |
Module * | module |
The LLVM module that defines this node class or type. More... | |
VuoCompilerBitcodeParser * | parser |
The parser of the LLVM module. More... | |
|
static |
Creates a class name for a published input node with the given published input ports.
Definition at line 280 of file VuoCompilerPublishedInputNodeClass.cc.
size_t VuoCompilerPublishedInputNodeClass::getInputPortIndexForPublishedInputPort | ( | size_t | publishedInputPortIndex | ) |
Returns the index of the input port on this node class that corresponds to the published port.
Definition at line 264 of file VuoCompilerPublishedInputNodeClass.cc.
size_t VuoCompilerPublishedInputNodeClass::getOutputPortIndexForPublishedInputPort | ( | size_t | publishedInputPortIndex | ) |
Returns the index of the output port on this node class that corresponds to the published port.
Definition at line 272 of file VuoCompilerPublishedInputNodeClass.cc.
|
static |
Returns a new node class with port names and types as specified by nodeClassName, or null if nodeClassName is not a valid published input node class name.
Definition at line 69 of file VuoCompilerPublishedInputNodeClass.cc.
|
static |
Returns a new node class with port names and types corresponding to publishedInputPorts.
Definition at line 77 of file VuoCompilerPublishedInputNodeClass.cc.