mirror of
https://github.com/Relintai/rcpp_framework.git
synced 2025-05-06 17:51:36 +02:00
Mockup for the core database classes.
This commit is contained in:
parent
5559b663b5
commit
026513c0ff
@ -0,0 +1,7 @@
|
|||||||
|
#include "database.h"
|
||||||
|
|
||||||
|
Database::Database() {
|
||||||
|
}
|
||||||
|
|
||||||
|
Database::~Database() {
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
#ifndef DATABASE_H
|
||||||
|
#define DATABASE_H
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
enum QueryErrorCode {
|
||||||
|
OK,
|
||||||
|
ERROR
|
||||||
|
};
|
||||||
|
|
||||||
|
class QueryResult {
|
||||||
|
public:
|
||||||
|
};
|
||||||
|
|
||||||
|
class Database {
|
||||||
|
public:
|
||||||
|
//probably needs refcount, depending on what db engines do, todo
|
||||||
|
virtual QueryResult *query(const std::string &sql);
|
||||||
|
virtual QueryResult *query_async(const std::string &sql);
|
||||||
|
//or
|
||||||
|
virtual QueryErrorCode query(QueryResult *result, const std::string &sql);
|
||||||
|
virtual QueryErrorCode query_async(QueryResult *result, const std::string &sql);
|
||||||
|
|
||||||
|
//also
|
||||||
|
//virtual QueryResult *query_prepared(const std::string &sql, param1, param2, ...);
|
||||||
|
|
||||||
|
Database();
|
||||||
|
~Database();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
@ -0,0 +1,23 @@
|
|||||||
|
#include "database_manager.h"
|
||||||
|
|
||||||
|
void DatabaseManager::load() {
|
||||||
|
//go thourgh settings, and create all the defined db backends
|
||||||
|
}
|
||||||
|
|
||||||
|
DatabaseManager *DatabaseManager::get_singleton() {
|
||||||
|
return _instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
DatabaseManager::DatabaseManager() {
|
||||||
|
_instance = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
DatabaseManager::~DatabaseManager() {
|
||||||
|
_instance = nullptr;
|
||||||
|
|
||||||
|
for (uint32_t i = 0; i < databases.size(); ++i) {
|
||||||
|
delete databases[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DatabaseManager *DatabaseManager::_instance = nullptr;
|
@ -0,0 +1,23 @@
|
|||||||
|
#ifndef DATABASE_MANAGER_H
|
||||||
|
#define DATABASE_MANAGER_H
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include "database.h"
|
||||||
|
|
||||||
|
class DatabaseManager {
|
||||||
|
public:
|
||||||
|
std::vector<Database *> databases;
|
||||||
|
|
||||||
|
void load();
|
||||||
|
|
||||||
|
DatabaseManager *get_singleton();
|
||||||
|
|
||||||
|
DatabaseManager();
|
||||||
|
~DatabaseManager();
|
||||||
|
|
||||||
|
private:
|
||||||
|
static DatabaseManager * _instance;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user