Vuo
2.3.2
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
protected
:
23
VuoCompilerPublishedNodeClass
(
string
nodeClassName, Module *
module
);
24
VuoCompilerPublishedNodeClass
(
VuoCompilerPublishedNodeClass
*compilerNodeClass);
25
VuoCompilerPublishedNodeClass
(
VuoNodeClass
*baseNodeClass);
26
static
VuoNodeClass
*
newNodeClass
(
const
string
&nodeClassName,
VuoCompiler
*compiler, dispatch_queue_t
llvmQueue
,
VuoCompilerPublishedNodeClass
*singleton);
27
static
VuoNodeClass
*
newNodeClass
(
const
vector<VuoPublishedPort *> &publishedPorts, dispatch_queue_t
llvmQueue
,
VuoCompilerPublishedNodeClass
*singleton);
28
30
virtual
VuoNodeClass
*
newNodeClassWithImplementation
(
const
string
&nodeClassName,
const
vector<string> &portNames,
const
vector<VuoType *> &types) = 0;
31
33
virtual
VuoNodeClass
*
newNodeClassWithoutImplementation
(
const
string
&nodeClassName,
const
vector<string> &portNames,
const
vector<VuoType *> &types) = 0;
34
36
virtual
string
getNodeClassNamePrefix
(
void
) = 0;
37
39
virtual
set<string>
getReservedPortNames
(
void
) = 0;
40
41
bool
parseNodeClassName
(
string
nodeClassName, vector<string> &portNames, vector<string> &typeNames)
VuoWarnUnusedResult
;
42
string
buildNodeClassName
(
const
vector<string> &portNames,
const
vector<VuoType *> &types);
43
string
buildNodeClassNameFromPorts
(
const
vector<VuoPublishedPort *> &publishedPorts);
44
vector<string>
formUniquePortNames
(
const
vector<VuoPublishedPort *> &publishedPorts);
45
46
VuoCompilerNode
*
createReplacementBackingNode
(
VuoNode
*nodeToBack,
string
backingNodeClassName,
VuoCompiler
*compiler);
47
VuoType
*
getOriginalPortType
(
VuoPortClass
*portClass);
48
string
getOriginalGenericNodeClassName
(
void
);
49
string
getOriginalGenericNodeClassDescription
(
void
);
50
VuoNodeSet
*
getOriginalGenericNodeSet
(
void
);
51
string
createUnspecializedNodeClassName
(set<VuoPortClass *> portClassesToUnspecialize);
52
string
createSpecializedNodeClassNameWithReplacement
(
string
genericTypeName,
string
specializedTypeName);
53
54
private
:
55
static
VuoNodeClass
*
newNodeClass
(
const
vector<string> &portNames,
const
vector<VuoType *> &types, dispatch_queue_t
llvmQueue
,
VuoCompilerPublishedNodeClass
*singleton);
56
};
Generated on Sat Jun 19 2021 10:17:42 for Vuo by
1.9.1