Vuo  2.0.0
VuoCompilerPublishedInputNodeClass.hh
Go to the documentation of this file.
1 
10 #pragma once
11 
13 
19 {
20 public:
21  static VuoNodeClass * newNodeClass(string nodeClassName, VuoCompiler *compiler, dispatch_queue_t llvmQueue);
22  static VuoNodeClass * newNodeClass(vector<VuoPublishedPort *> publishedInputPorts, dispatch_queue_t llvmQueue = nullptr);
23  size_t getInputPortIndexForPublishedInputPort(size_t publishedInputPortIndex);
24  size_t getOutputPortIndexForPublishedInputPort(size_t publishedInputPortIndex);
25  static string buildNodeClassName(const vector<VuoPublishedPort *> &publishedInputPorts);
26 
27 private:
28  static VuoCompilerPublishedInputNodeClass * getSingleton(void);
29  VuoCompilerPublishedInputNodeClass(string nodeClassName, Module *module);
32  VuoNodeClass * newNodeClassWithImplementation(const string &nodeClassName, const vector<string> &portNames, const vector<VuoType *> &types);
33  VuoNodeClass * newNodeClassWithoutImplementation(const string &nodeClassName, const vector<string> &portNames, const vector<VuoType *> &types);
34 
35  string getNodeClassNamePrefix(void);
36  set<string> getReservedPortNames(void);
37 
38  static VuoCompilerPublishedInputNodeClass *singleton;
39  map<string, string> inputPortNameForPublishedPort;
40 };