EHS/include/ehs/db/Database.h

53 lines
861 B
C
Raw Normal View History

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