EHS/include/ehs/db/Database.h

53 lines
861 B
C++

#pragma once
#include "ehs/Array.h"
#include "DbTable.h"
namespace ehs
{
class Database
{
private:
UInt_64 hashId;
Str_8 id;
Version version;
Array<DbTable> tables;
public:
Database();
Database(Str_8 id, const Version& version);
Database(const Str_8& filePath);
Database(Database&& db) noexcept;
Database(const Database& db);
Database& operator=(Database&& db) noexcept;
Database& operator=(const Database& db);
UInt_64 GetHashId() const;
void SetId(Str_8 newId);
Str_8 GetId() const;
void SetVersion(const Version& newVersion);
Version GetVersion() const;
bool HasTable(UInt_64 hashId) const;
bool HasTable(const Str_8& id) const;
DbTable* CreateTable(Str_8 id);
DbTable* GetTable(UInt_64 hashId) const;
DbTable* GetTable(const Str_8& id) const;
void Save(const Str_8& directory) const;
};
}