Vuo
2.4.4
Loading...
Searching...
No Matches
compiler
VuoCompilerPublishedNodeClass.hh
Go to the documentation of this file.
1
10
#pragma once
11
12
#include "
VuoCompilerSpecializedNodeClass.hh
"
13
#include "
VuoHeap.h
"
14
15
class
VuoPublishedPort
;
16
20
class
VuoCompilerPublishedNodeClass
:
public
VuoCompilerSpecializedNodeClass
21
{
22
public
:
23
static
bool
isPublishedNodeClassName
(
const
string
&nodeClassName);
24
string
getFileName
(
void
);
25
static
string
getFileNameForModuleKey
(
const
string
&moduleKey);
26
static
bool
isModuleKeyMangledInFileName
(
const
string
&fileName);
27
28
protected
:
29
VuoCompilerPublishedNodeClass
(
string
nodeClassName, Module *module);
30
VuoCompilerPublishedNodeClass
(
VuoCompilerPublishedNodeClass
*compilerNodeClass);
31
VuoCompilerPublishedNodeClass
(
VuoNodeClass
*baseNodeClass);
32
static
VuoNodeClass
*
newNodeClass
(
const
string
&nodeClassName,
VuoCompiler
*compiler, dispatch_queue_t
llvmQueue
,
VuoCompilerPublishedNodeClass
*singleton);
33
static
VuoNodeClass
*
newNodeClass
(
const
vector<VuoPublishedPort *> &publishedPorts, dispatch_queue_t
llvmQueue
,
VuoCompilerPublishedNodeClass
*singleton);
34
36
virtual
VuoNodeClass
*
newNodeClassWithImplementation
(
const
string
&nodeClassName,
const
vector<string> &portNames,
const
vector<VuoType *> &types) = 0;
37
39
virtual
VuoNodeClass
*
newNodeClassWithoutImplementation
(
const
string
&nodeClassName,
const
vector<string> &portNames,
const
vector<VuoType *> &types) = 0;
40
42
virtual
string
getNodeClassNamePrefix
(
void
) = 0;
43
45
virtual
set<string>
getReservedPortNames
(
void
) = 0;
46
47
bool
parseNodeClassName
(
string
nodeClassName, vector<string> &portNames, vector<string> &typeNames)
VuoWarnUnusedResult
;
48
string
buildNodeClassName
(
const
vector<string> &portNames,
const
vector<VuoType *> &types);
49
string
buildNodeClassName
(
const
vector<string> &portNames,
const
vector<string> &typeNames);
50
string
buildNodeClassNameFromPorts
(
const
vector<VuoPublishedPort *> &publishedPorts);
51
vector<string>
formUniquePortNames
(
const
vector<VuoPublishedPort *> &publishedPorts);
52
json_object *
buildSpecializedModuleDetails
(
const
vector<VuoType *> &types);
53
54
VuoCompilerNode
*
createReplacementBackingNode
(
VuoNode
*nodeToBack,
string
backingNodeClassName,
VuoCompiler
*compiler);
55
VuoType
*
getOriginalPortType
(
VuoPortClass
*portClass);
56
string
getOriginalGenericNodeClassName
(
void
);
57
string
getOriginalGenericNodeClassDescription
(
void
);
58
VuoNodeSet
*
getOriginalGenericNodeSet
(
void
);
59
string
createUnspecializedNodeClassName
(set<VuoPortClass *> portClassesToUnspecialize);
60
string
createSpecializedNodeClassNameWithReplacement
(
string
genericTypeName,
string
specializedTypeName);
61
62
private
:
63
static
VuoNodeClass
*
newNodeClass
(
const
vector<string> &portNames,
const
vector<VuoType *> &types, dispatch_queue_t
llvmQueue
,
VuoCompilerPublishedNodeClass
*singleton);
64
};
Generated on Thu Nov 9 2023 16:59:29 for Vuo by
1.9.8