summaryrefslogtreecommitdiff
path: root/src/AliasManager.cpp
blob: 1f12aeb2a32c2e18d32604246cfca95af2c82d6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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();
}