forked from github/server
add berkeley db, rename some files
This commit is contained in:
parent
9c44c1ce63
commit
2f5f685e55
|
@ -44,8 +44,8 @@ void game_done(void)
|
||||||
#ifdef CLEANUP_CODE
|
#ifdef CLEANUP_CODE
|
||||||
/* Diese Routine enfernt allen allokierten Speicher wieder. Das ist nur
|
/* Diese Routine enfernt allen allokierten Speicher wieder. Das ist nur
|
||||||
* zum Debugging interessant, wenn man Leak Detection hat, und nach
|
* zum Debugging interessant, wenn man Leak Detection hat, und nach
|
||||||
* nicht freigegebenem Speicher sucht, der nicht bis zum Ende benötigt
|
* nicht freigegebenem Speicher sucht, der nicht bis zum Ende ben<EFBFBD>tigt
|
||||||
* wird (temporäre Hilsstrukturen) */
|
* wird (tempor<EFBFBD>re Hilsstrukturen) */
|
||||||
|
|
||||||
free_game();
|
free_game();
|
||||||
|
|
||||||
|
@ -60,12 +60,12 @@ void game_done(void)
|
||||||
free_special_directions();
|
free_special_directions();
|
||||||
free_locales();
|
free_locales();
|
||||||
kernel_done();
|
kernel_done();
|
||||||
db_close();
|
dblib_close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void game_init(void)
|
void game_init(void)
|
||||||
{
|
{
|
||||||
db_open();
|
dblib_open();
|
||||||
kernel_init();
|
kernel_init();
|
||||||
register_triggers();
|
register_triggers();
|
||||||
register_xmas();
|
register_xmas();
|
||||||
|
|
|
@ -37,10 +37,15 @@ jsonconf.test.c
|
||||||
)
|
)
|
||||||
|
|
||||||
SET(_DBFILES db/critbit.c)
|
SET(_DBFILES db/critbit.c)
|
||||||
|
|
||||||
IF(SQLITE3_FOUND)
|
IF(SQLITE3_FOUND)
|
||||||
SET(_DBFILES db/sqlite.c)
|
SET(_DBFILES db/sqlite.c)
|
||||||
ENDIF(SQLITE3_FOUND)
|
ENDIF(SQLITE3_FOUND)
|
||||||
|
|
||||||
|
IF(DB_FOUND)
|
||||||
|
SET(_DBFILES db/berkeley.c)
|
||||||
|
ENDIF(DB_FOUND)
|
||||||
|
|
||||||
SET(_FILES
|
SET(_FILES
|
||||||
${_DBFILES}
|
${_DBFILES}
|
||||||
alliance.c
|
alliance.c
|
||||||
|
|
|
@ -9,50 +9,30 @@
|
||||||
|
|
||||||
#include <util/log.h>
|
#include <util/log.h>
|
||||||
|
|
||||||
#ifdef USE_SQLITE
|
#include "db/driver.h"
|
||||||
#include "db/sqlite.h"
|
|
||||||
#else
|
|
||||||
#include "db/critbit.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
order_data *db_load_order(int id)
|
order_data *dblib_load_order(int id)
|
||||||
{
|
{
|
||||||
if (id > 0) {
|
if (id > 0) {
|
||||||
#ifdef USE_SQLITE
|
return db_driver_order_load(id);
|
||||||
return db_sqlite_order_load(id);
|
|
||||||
#else
|
|
||||||
return db_critbit_order_load(id);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
int db_save_order(order_data *od)
|
int dblib_save_order(order_data *od)
|
||||||
{
|
{
|
||||||
if (od->_str) {
|
if (od->_str) {
|
||||||
#ifdef USE_SQLITE
|
return db_driver_order_save(od);
|
||||||
return db_sqlite_order_save(od);
|
|
||||||
#else
|
|
||||||
return db_critbit_order_save(od);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void db_open(void)
|
void dblib_open(void)
|
||||||
{
|
{
|
||||||
#ifdef USE_SQLITE
|
db_driver_open();
|
||||||
db_sqlite_open();
|
|
||||||
#else
|
|
||||||
db_critbit_open();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void db_close(void)
|
void dblib_close(void)
|
||||||
{
|
{
|
||||||
#ifdef USE_SQLITE
|
db_driver_close();
|
||||||
db_sqlite_close();
|
|
||||||
#else
|
|
||||||
db_critbit_close();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#ifndef H_DB
|
#ifndef H_DATABASE
|
||||||
#define H_DB
|
#define H_DATABASE
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
|
@ -9,11 +9,11 @@ extern "C" {
|
||||||
|
|
||||||
struct order_data;
|
struct order_data;
|
||||||
|
|
||||||
void db_open(void);
|
void dblib_open(void);
|
||||||
void db_close(void);
|
void dblib_close(void);
|
||||||
|
|
||||||
struct order_data *db_load_order(int id);
|
struct order_data *dblib_load_order(int id);
|
||||||
int db_save_order(struct order_data *od);
|
int dblib_save_order(struct order_data *od);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
#include <platform.h>
|
||||||
|
#include "driver.h"
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
#define _DARWIN_C_SOURCE
|
||||||
|
#include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
#include <db.h>
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
static DB *g_dbp;
|
||||||
|
|
||||||
|
void db_driver_open(void)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
u_int32_t flags = DB_CREATE|DB_TRUNCATE;
|
||||||
|
const char * dbname;
|
||||||
|
|
||||||
|
ret = db_create(&g_dbp, NULL, 0);
|
||||||
|
assert(ret==0);
|
||||||
|
|
||||||
|
ret = g_dbp->open(g_dbp, NULL, dbname, NULL, DB_BTREE, flags, 0);
|
||||||
|
assert(ret==0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void db_driver_close(void)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
ret = g_dbp->close(g_dbp, 0);
|
||||||
|
assert(ret==0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int db_driver_order_save(struct order_data *od)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct order_data *db_driver_order_load(int id)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#include <platform.h>
|
#include <platform.h>
|
||||||
#include "critbit.h"
|
#include "driver.h"
|
||||||
|
|
||||||
#include <kernel/orderdb.h>
|
#include <kernel/orderdb.h>
|
||||||
#include <util/log.h>
|
#include <util/log.h>
|
||||||
|
@ -18,7 +18,7 @@ struct cb_entry {
|
||||||
order_data *data;
|
order_data *data;
|
||||||
};
|
};
|
||||||
|
|
||||||
order_data *db_critbit_order_load(int id)
|
order_data *db_driver_order_load(int id)
|
||||||
{
|
{
|
||||||
void * match;
|
void * match;
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ order_data *db_critbit_order_load(int id)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
int db_critbit_order_save(order_data *od)
|
int db_driver_order_save(order_data *od)
|
||||||
{
|
{
|
||||||
struct cb_entry ent;
|
struct cb_entry ent;
|
||||||
|
|
||||||
|
@ -53,13 +53,13 @@ static int free_data_cb(const void *match, const void *key, size_t keylen,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void db_critbit_open(void)
|
void db_driver_open(void)
|
||||||
{
|
{
|
||||||
assert(auto_id == -1);
|
assert(auto_id == -1);
|
||||||
auto_id = 0;
|
auto_id = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void db_critbit_close(void)
|
void db_driver_close(void)
|
||||||
{
|
{
|
||||||
cb_foreach(&cb_orders, NULL, 0, free_data_cb, NULL);
|
cb_foreach(&cb_orders, NULL, 0, free_data_cb, NULL);
|
||||||
cb_clear(&cb_orders);
|
cb_clear(&cb_orders);
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
struct order_data;
|
|
||||||
|
|
||||||
void db_critbit_open(void);
|
|
||||||
void db_critbit_close(void);
|
|
||||||
int db_critbit_order_save(struct order_data *od);
|
|
||||||
struct order_data *db_critbit_order_load(int id);
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
struct order_data;
|
||||||
|
|
||||||
|
void db_driver_open(void);
|
||||||
|
void db_driver_close(void);
|
||||||
|
int db_driver_order_save(struct order_data *od);
|
||||||
|
struct order_data *db_driver_order_load(int id);
|
|
@ -6,6 +6,8 @@
|
||||||
|
|
||||||
#include <util/log.h>
|
#include <util/log.h>
|
||||||
|
|
||||||
|
#include "driver.h"
|
||||||
|
|
||||||
#include <sqlite3.h>
|
#include <sqlite3.h>
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
@ -20,7 +22,7 @@ static sqlite3_stmt * g_stmt_select;
|
||||||
static int g_order_batchsize;
|
static int g_order_batchsize;
|
||||||
static int g_order_tx_size;
|
static int g_order_tx_size;
|
||||||
|
|
||||||
order_data *db_sqlite_order_load(int id)
|
order_data *db_driver_order_load(int id)
|
||||||
{
|
{
|
||||||
order_data * od = NULL;
|
order_data * od = NULL;
|
||||||
int err;
|
int err;
|
||||||
|
@ -50,7 +52,7 @@ order_data *db_sqlite_order_load(int id)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
int db_sqlite_order_save(order_data *od)
|
int db_driver_order_save(order_data *od)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
sqlite3_int64 id;
|
sqlite3_int64 id;
|
||||||
|
@ -84,7 +86,7 @@ int db_sqlite_order_save(order_data *od)
|
||||||
return (int)id;
|
return (int)id;
|
||||||
}
|
}
|
||||||
|
|
||||||
void db_sqlite_open(void)
|
void db_driver_open(void)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
const char *dbname;
|
const char *dbname;
|
||||||
|
@ -108,7 +110,7 @@ void db_sqlite_open(void)
|
||||||
assert(err == SQLITE_OK);
|
assert(err == SQLITE_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
void db_sqlite_close(void)
|
void db_driver_close(void)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
struct order_data;
|
|
||||||
|
|
||||||
void db_sqlite_open(void);
|
|
||||||
void db_sqlite_close(void);
|
|
||||||
int db_sqlite_order_save(struct order_data *od);
|
|
||||||
struct order_data *db_sqlite_order_load(int id);
|
|
|
@ -38,10 +38,10 @@ void odata_addref(order_data *od)
|
||||||
|
|
||||||
order_data *odata_load(int id)
|
order_data *odata_load(int id)
|
||||||
{
|
{
|
||||||
return db_load_order(id);
|
return dblib_load_order(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
int odata_save(order_data *od)
|
int odata_save(order_data *od)
|
||||||
{
|
{
|
||||||
return db_save_order(od);
|
return dblib_save_order(od);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue