Vuo  2.0.0
VuoCompilerPublishedOutputNodeClass.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 *> publishedOutputPorts, dispatch_queue_t llvmQueue = nullptr);
23  size_t getInputPortIndexForPublishedOutputPort(size_t publishedOutputPortIndex);
24  size_t getGatherInputPortIndex(void);
25  static string buildNodeClassName(const vector<VuoPublishedPort *> &publishedOutputPorts);
26 
27 private:
28  static VuoCompilerPublishedOutputNodeClass * getSingleton(void);
29  VuoCompilerPublishedOutputNodeClass(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 VuoCompilerPublishedOutputNodeClass *singleton;
39 };