Vuo  2.3.2
VuoCompilerMakeListNodeClass.hh
Go to the documentation of this file.
1 
10 #pragma once
11 
13 
14 class VuoCompilerType;
15 
20 {
21 private:
22  unsigned long itemCount;
23  VuoCompilerType *listType;
24 
25  VuoCompilerMakeListNodeClass(string nodeClassName, Module *module);
28  void initialize(void);
29 
30  static bool parseNodeClassName(string nodeClassName, unsigned long &itemCount, string &itemTypeName);
31 
32  static const string makeListNodeClassNamePrefix;
33  static const string makeListNodeClassDescription;
34 
35 public:
36  unsigned long getItemCount(void);
42  string createUnspecializedNodeClassName(set<VuoPortClass *> portClassesToUnspecialize);
43  string createSpecializedNodeClassNameWithReplacement(string genericTypeName, string specializedTypeName);
44 
45  static VuoNodeClass * newNodeClass(string nodeClassName, VuoCompiler *compiler, dispatch_queue_t llvmQueue);
46  static bool isMakeListNodeClassName(string nodeClassName);
47  static string getNodeClassName(unsigned long itemCount, VuoCompilerType *listType);
48  static string buildNodeClassName(unsigned long itemCount, string itemTypeName);
49 };