29 lines
620 B
C++
29 lines
620 B
C++
#pragma once
|
|
|
|
#include "types.h"
|
|
#include "ustring.h"
|
|
|
|
class Dentry;
|
|
class VfsMount;
|
|
|
|
class Path
|
|
{
|
|
public:
|
|
Path() = default;
|
|
Path(Dentry* dentry, VfsMount* mnt);
|
|
Path(const Path&) = default;
|
|
Path& operator=(const Path&) = default;
|
|
bool operator==(const Path&) const;
|
|
|
|
Path parent(const Path* global_root = nullptr) const;
|
|
int child(const ustl::string& name, Path& out) const;
|
|
|
|
ustl::string getAbsolutePath(const Path* global_root = nullptr) const;
|
|
|
|
bool isGlobalRoot(const Path* global_root = nullptr) const;
|
|
bool isMountRoot() const;
|
|
|
|
Dentry* dentry_;
|
|
VfsMount* mnt_;
|
|
};
|