-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFileSystemEnv.h
More file actions
32 lines (28 loc) · 844 Bytes
/
FileSystemEnv.h
File metadata and controls
32 lines (28 loc) · 844 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#pragma once
#include <filesystem>
#include <memory>
#include "Directory.h"
#include "User.h"
namespace fs
{
class FileSystemEnv
{
private:
const User* m_user{};
std::unique_ptr<Directory> m_root{};
std::filesystem::path m_rootPath{};
static const char* const usersHomePath;
public:
explicit FileSystemEnv(const User* user);
~FileSystemEnv();
FileSystemEnv(const FileSystemEnv&) = delete;
FileSystemEnv& operator=(const FileSystemEnv&) = delete;
FileSystemEnv(FileSystemEnv&& other) noexcept;
FileSystemEnv& operator=(FileSystemEnv&& other) noexcept;
void loadUserEnv();
void saveUserEnv() const;
[[nodiscard]] SystemObject* searchSystemObject(const std::string& path);
[[nodiscard]] Directory* getRoot();
[[nodiscard]] const User* getUser() const;
};
} // namespace fs