35 static shared_ptr<VuoModuleCache>
newCache(
const string &uniquePath);
39 void makeAvailable(
bool shouldUseExistingCache, vector<shared_ptr<VuoModuleCache>> prerequisiteModuleCaches,
double &lastPrerequisiteModuleCacheRebuild,
const VuoModuleCacheManifest &expectedManifest, vector<VuoModuleInfoIterator> expectedModules,
const set<string> &dylibsToLinkTo,
const set<string> &frameworksToLinkTo,
const vector<string> &runPathSearchPaths,
VuoCompiler *compiler,
const string &targetArch =
"");
47 static string getCacheDirectoryPath(
const string &uniquePath);
48 static string getRelativePathOfModulesDirectory(
bool isGenerated,
const string &targetArch);
49 string getDescription(
void);
50 string getManifestPath(
const string &targetArch =
"");
51 string getDylibPath(
const string &targetArch =
"");
52 string findLatestRevisionOfDylib(
double &lastModified);
53 static bool areDifferentRevisionsOfSameDylib(
const string &dylibPath1,
const string &dylibPath2);
55 string cacheDirectoryPath;
59 shared_ptr<VuoModuleCacheRevision> currentRevision;
61 std::mutex statusMutex;
62 std::mutex contentsMutex;
63 static std::mutex buildMutex;
64 static int buildsInProgress;
65 static std::condition_variable buildsInProgressCondition;
66 static std::mutex buildsInProgressMutex;
68 static const string builtInCacheDirName;
69 static const string systemCacheDirName;
70 static const string userCacheDirName;
71 static const string pidCacheDirPrefix;
90 bool hasLockForWriting;
93 static map<string, LockInfo *> interprocessLockInfo;
94 bool hasInterprocessLock;
96 friend class TestModuleCaches;
97 friend class ModuleCachesDiff;
98 friend class ModuleScope;