#pragma once #include #include "db/database_manager.h" #include "machine.h" #include "vfs.h" /* Recursive copy function for our Copy-on-Write behaviour. */ vfs_node* copy_vfs_node(vfs_node* original, vfs_node* new_parent); class MachineManager { public: MachineManager(DatabaseManager* db_manager); ~MachineManager(void); /* TODO: Implement recursive VFS deletion. */ Machine* create_machine(uint32_t id, const std::string& hostname, const std::string& system_type); Machine* load_machine(long long machine_id, DatabaseManager* db_manager); vfs_node* get_vfs_template(void) { return _vfs_template_root; } private: DatabaseManager* _db_manager; vfs_node* _vfs_template_root; };