Vuo 2.4.4
Loading...
Searching...
No Matches
VuoModuleCacheManifest.cc
Go to the documentation of this file.
1
11#include "VuoFileUtilities.hh"
12#include "VuoStringUtilities.hh"
13
20
24void VuoModuleCacheManifest::addModule(const string &moduleKey, bool isOverridden)
25{
26 (isOverridden ? overriddenDependencies : dependencies).insert(moduleKey);
27}
28
32void VuoModuleCacheManifest::addDependency(const string &dependency)
33{
34 dependencies.insert(dependency);
35}
36
41{
42 dependencies.insert(other.dependencies.begin(), other.dependencies.end());
43 overriddenDependencies.insert(other.overriddenDependencies.begin(), other.overriddenDependencies.end());
44}
45
50{
51 return dependencies == other.dependencies && overriddenDependencies == other.overriddenDependencies;
52}
53
57void VuoModuleCacheManifest::readFromFile(const string &manifestFilePath)
58{
59 string contents = VuoFileUtilities::readFileToString(manifestFilePath);
60 vector<string> lines = VuoStringUtilities::split(contents, '\n');
61
62 for (const string &line : lines)
63 {
64 vector<string> parts = VuoStringUtilities::split(line, ' ');
65 if (parts.size() == 1)
66 dependencies.insert(parts[0]);
67 else if (parts.size() == 2 && parts[1] == "o")
68 overriddenDependencies.insert(parts[0]);
69 }
70}
71
75void VuoModuleCacheManifest::writeToFile(const string &manifestFilePath) const
76{
77 vector<string> lines;
78
79 for (const string &dep : overriddenDependencies)
80 lines.push_back(dep + " o");
81
82 lines.insert(lines.end(), dependencies.begin(), dependencies.end());
83
84 string contents = VuoStringUtilities::join(lines, '\n');
85 VuoFileUtilities::writeStringToFile(contents, manifestFilePath);
86}
87
91bool VuoModuleCacheManifest::contains(const string &content) const
92{
93 return dependencies.find(content) != dependencies.end() || overriddenDependencies.find(content) != overriddenDependencies.end();
94}
95
100{
101 set<string> contents;
102
103 contents.insert(dependencies.begin(), dependencies.end());
104 contents.insert(overriddenDependencies.begin(), overriddenDependencies.end());
105
106 return contents;
107}