summaryrefslogtreecommitdiff
path: root/src/AliasManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/AliasManager.cpp')
-rw-r--r--src/AliasManager.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/AliasManager.cpp b/src/AliasManager.cpp
new file mode 100644
index 0000000..1f12aeb
--- /dev/null
+++ b/src/AliasManager.cpp
@@ -0,0 +1,23 @@
+#include "AliasManager.h"
+#include "utils/TorchUtils.h"
+
+static AliasManager sAliasManagerInstance;
+AliasManager* AliasManager::Instance = &sAliasManagerInstance;
+
+void AliasManager::Register(const std::string& primaryPath, const std::string& aliasPath) {
+ mAliases[primaryPath].push_back(aliasPath);
+}
+
+void AliasManager::WriteAliases(const std::string& primaryPath, BinaryWrapper* wrapper,
+ const std::vector<char>& data) {
+ if (!Torch::contains(mAliases, primaryPath)) return;
+
+ for (auto& alias : mAliases[primaryPath]) {
+ wrapper->AddFile(alias, data);
+ }
+ mAliases.erase(primaryPath);
+}
+
+void AliasManager::Clear() {
+ mAliases.clear();
+}