Monopoly — Portage moderne
0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
ResourcePaths.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
LegacyDataArchive.hpp
"
4
5
#include <expected>
6
#include <filesystem>
7
#include <span>
8
#include <string_view>
9
#include <vector>
10
11
namespace
monopoly::data
12
{
13
// Racines explicites, dans leur ordre de priorite. Aucun chemin courant,
14
// lecteur CD ou repli sur le seul nom de fichier n'est ajoute implicitement.
15
class
ResourcePaths
final
16
{
17
public
:
18
[[
nodiscard
]]
static
std::expected<ResourcePaths, DataError>
create
(
19
std::span<const std::filesystem::path>
roots
);
20
21
// Les noms historiques Windows acceptent les deux separateurs et une
22
// casse ASCII indifferente. Deux entrees de meme casse repliee sont une
23
// erreur, meme si l'une correspond exactement au nom demande.
24
// Les liens symboliques suivent les regles du filesystem : ceci n'est
25
// pas une frontiere de confinement contre les liens hors d'une racine.
26
[[
nodiscard
]] std::expected<std::filesystem::path, DataError>
resolve
(
27
std::string_view relativePath)
const
;
28
29
[[
nodiscard
]] std::span<const std::filesystem::path>
roots
()
30
const
noexcept
;
31
32
private
:
33
std::vector<std::filesystem::path> roots_;
34
};
35
}
LegacyDataArchive.hpp
index
unsigned index
Definition
ModernIBarSkin.cpp:25
monopoly::data::ResourcePaths
Definition
ResourcePaths.hpp:16
monopoly::data::ResourcePaths::resolve
std::expected< std::filesystem::path, DataError > resolve(std::string_view relativePath) const
Definition
ResourcePaths.cpp:216
monopoly::data::ResourcePaths::roots
std::span< const std::filesystem::path > roots() const noexcept
Definition
ResourcePaths.cpp:278
monopoly::data::ResourcePaths::create
static std::expected< ResourcePaths, DataError > create(std::span< const std::filesystem::path > roots)
Definition
ResourcePaths.cpp:160
monopoly::data
Definition
ArchiveAssembly.cpp:21
ResourcePaths.hpp
Generated by
1.9.8