93 lines
2.6 KiB
C
93 lines
2.6 KiB
C
/*
|
|
* Kangaroo Punch MultiPlayer Game Server Mark II
|
|
* Copyright (C) 2020-2021 Scott Duensing
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
*
|
|
*/
|
|
|
|
|
|
#ifndef DATABASE_H
|
|
#define DATABASE_H
|
|
|
|
|
|
#include "os.h"
|
|
|
|
|
|
#define DB_CONFIG_ITEM_SIZE 1024
|
|
|
|
|
|
typedef enum DbGameTypeE {
|
|
GAME_TYPE_UNKNOWN = 0,
|
|
GAME_TYPE_DOOR,
|
|
GAME_TYPE_SERIAL,
|
|
GAME_TYPE_IPX,
|
|
GAME_TYPE_FICTION
|
|
} DbGameTypeT;
|
|
|
|
|
|
typedef struct DbClientConfigS {
|
|
char *name;
|
|
char *data;
|
|
} DbClientConfigT;
|
|
|
|
typedef struct DbFileInfoS {
|
|
uint64_t id;
|
|
char *path;
|
|
uint64_t length;
|
|
char *sha;
|
|
char *modified;
|
|
uint8_t authenticated;
|
|
uint8_t touched;
|
|
} DbFileInfoT;
|
|
|
|
typedef struct DbGameS {
|
|
char *title;
|
|
char *publisher;
|
|
char *developer;
|
|
char *description;
|
|
char *releaseDate;
|
|
char *rating;
|
|
char *series;
|
|
char *origin;
|
|
char *shortName;
|
|
char *worksWith;
|
|
DbGameTypeT type;
|
|
uint8_t maxPlayers;
|
|
uint8_t joinable;
|
|
uint8_t screens;
|
|
uint8_t boxes;
|
|
} DbGameT;
|
|
|
|
|
|
uint8_t dbConnect(char *host, uint16_t port, char *database, char *user, char *password);
|
|
void dbClientConfigRelease(DbClientConfigT **config);
|
|
DbClientConfigT **dbClientConfigGet(void);
|
|
uint8_t dbDisconnect(void);
|
|
DbFileInfoT *dbFileInfoGet(char *vpath);
|
|
void dbFileInfoRelease(DbFileInfoT **info);
|
|
void dbGameRelease(DbGameT **game);
|
|
DbGameT **dbGamesGet(void);
|
|
uint8_t dbSettingsStringGet(char *host, char *key, char *value, uint32_t max);
|
|
uint8_t dbSettingsValueGet(char *host, char *key, int32_t *value);
|
|
uint8_t dbUpdateFileData(char *file, uint64_t len, char *time);
|
|
uint8_t dbUpdateFilesFinish(void);
|
|
uint8_t dbUpdateFilesStart(void);
|
|
uint8_t dbUserCreate(char *first, char *last, char *user, char *pass, char *email);
|
|
uint8_t dbUserEmailExists(char *email);
|
|
uint8_t dbUserLogin(char *user, char *password);
|
|
uint8_t dbUserNameExists(char *user);
|
|
|
|
|
|
#endif // DATABASE_H
|