#pragma once #include #include struct vfs_node; /* Store children for quick lookup by name. */ typedef std::map vfs_child_map; enum vfs_node_type { FILE_NODE, DIR_NODE }; struct vfs_node { long long id; long long parent_id; /* Used durin DB loading only. */ std::string name; vfs_node_type type; /* Files. */ std::string content; /* Directories. */ vfs_child_map children; vfs_node* parent; }; vfs_node* new_node(std::string name, vfs_node_type type, vfs_node* parent); vfs_node* find_node_by_id(vfs_node* root, long long id); std::string get_full_path(vfs_node* node); void delete_vfs_tree(vfs_node* node);