Vuo 2.4.4
Loading...
Searching...
No Matches
VuoModuleManager.hh
Go to the documentation of this file.
1
10#pragma once
11
13class VuoType;
14class VuoCompiler;
18class VuoCompilerType;
19class VuoCodeWindow;
21class VuoNodeLibrary;
22
23typedef set<pair<VuoCompilerModule *, VuoCompilerModule *> > ModulesModifiedSet;
24
31{
32 Q_OBJECT
33
34public:
35 typedef void (^CallbackType)(void);
36
38 virtual ~VuoModuleManager(void);
39 void setComposition(VuoEditorComposition *composition);
40 void setCodeWindow(VuoCodeWindow *codeWindow);
41 void setNodeLibrary(VuoNodeLibrary *nodeLibrary);
44
45 void doNextTimeNodeClassIsLoaded(const string &nodeClassName, CallbackType callback);
46 void doEveryTimeNodeClassIsLoaded(const string &nodeClassName, CallbackType callback);
47 void cancelCallbackForNodeClass(const string &nodeClassName);
48
49 map<string, VuoCompilerType *> getLoadedSingletonTypes(bool limitToSpecializationTargets);
50 map<string, VuoCompilerType *> getLoadedGenericCompoundTypes(void);
51 set<string> getKnownListTypeNames(bool limitToSpecializationTargets);
52 set<string> getKnownNodeSets(void);
53 string getNodeSetForType(const string &typeName);
54 vector<string> getCompatibleTypecastClasses(const string &fromTypeName, VuoType *fromType, const string &toTypeName, VuoType *toType);
55 set<string> findInstancesOfNodeClass(const string &sourcePath);
56
57 void loadedModules(const map<string, VuoCompilerModule *> &modulesAdded,
58 const map<string, pair<VuoCompilerModule *, VuoCompilerModule *> > &modulesModified,
59 const map<string, VuoCompilerModule *> &modulesRemoved, VuoCompilerIssues *issues);
60
61signals:
65 void loadedModulesAndReadyToUpdate(const vector<string> &nodeClassesToRemove, const vector<VuoCompilerNodeClass *> &nodeClassesToAdd, const vector<string> &typesToRemove, const vector<VuoCompilerType *> &typesToAdd, const vector<string> &librariesToRemove, const ModulesModifiedSet &modulesModified, VuoCompilerIssues *issues);
66
67private:
68 void updateWithModulesBeingLoaded(const vector<string> &nodeClassesToRemove, const vector<VuoCompilerNodeClass *> &nodeClassesToAdd, const vector<string> &typesToRemove, const vector<VuoCompilerType *> &typesToAdd, const vector<string> &librariesToRemove, const ModulesModifiedSet &modulesModified, VuoCompilerIssues *issues);
69 void update(const vector<string> &nodeClassesToRemove, const vector<VuoCompilerNodeClass *> &nodeClassesToAdd, const vector<string> &typesToRemove, const vector<VuoCompilerType *> &typesToAdd, const vector<std::string> &librariesToRemove, const set<pair<VuoCompilerModule *, VuoCompilerModule *> > &modulesModified, VuoCompilerIssues *issues);
70 static bool isResponsibleForReportingErrors(VuoModuleManager *currManager, VuoCompilerIssues *errors, const vector<VuoCompilerNodeClass *> &nodeClassesToAdd);
71 void showErrorDialog(VuoCompilerIssues *errors);
72
73 void updateLoadedNodeClasses(const vector<string> &nodeClassesToRemove, const vector<VuoCompilerNodeClass *> &nodeClassesToAdd);
74 void updateLoadedTypes(const vector<string> &typesToRemove, const vector<VuoCompilerType *> &typesToAdd);
75 string getPrimaryAffiliatedNodeSetForType(const string &typeName);
76
77 VuoCompiler *compiler;
78 VuoEditorComposition *composition;
79 VuoCodeWindow *codeWindow;
80 VuoNodeLibrary *nodeLibrary;
81
82 map<string, pair<CallbackType, bool> > callbackForNodeClass;
83
84 map<pair<VuoType *, VuoType *>, set<string>> loadedTypeConverterNodeClasses;
85 map<string, VuoCompilerType *> loadedSingletonTypes;
86 map<string, VuoCompilerType *> loadedGenericCompoundTypes;
87 set<string> knownNodeSets;
88
89 static set<VuoModuleManager *> allModuleManagers;
90};