mirror of
https://github.com/Relintai/rcpp_framework.git
synced 2025-04-20 01:43:12 +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