Program Listing for File Project.hpp¶
↰ Return to documentation for file (include/shiva/Project.hpp
)
#pragma once
#include "bx/filepath.h"
#include <string>
#include <Meta.h>
#include <bx/error.h>
#include "DirectoryTree.hpp"
BX_ERROR_RESULT(SH_ERROR_NOT_EMPTY_DIRECTPRY, BX_MAKEFOURCC('s', 'h', 0, 0));
namespace shiva
{
class Project
{
friend auto meta::registerMembers<Project>();
public:
Project();
~Project();
static Project* New(bx::FilePath projectPath, std::string name, bx::Error* err);
void Save();
static Project* Load(bx::FilePath path, bx::Error* err);
void UpdateProjectTree();
const DirectoryTree& GetTree() const { return m_Tree; }
const bx::FilePath& GetPath() const { return m_ProjectPath; }
private:
bx::FilePath m_ProjectPath;
std::string m_ProjectName;
DirectoryTree m_Tree;
}; // Project
} // shiva
namespace meta {
template <>
inline auto registerMembers<shiva::Project>()
{
return members(
member("name", &shiva::Project::m_ProjectName)
);
}
} // end of namespace meta