aboutsummaryrefslogtreecommitdiff
path: root/src/querymanager.hh
diff options
context:
space:
mode:
authorfusion32 <marcopuzziello@gmail.com>2025-10-13 19:47:12 -0300
committerfusion32 <marcopuzziello@gmail.com>2025-10-13 19:47:12 -0300
commitb1631a7952d72ce56bd10656fffedc8a7fe322ca (patch)
treeaa200f5ae57c1e28248e44d3296614b5a529a786 /src/querymanager.hh
parentf188d54236256e3b820425a98d7d06e422673a97 (diff)
downloadquerymanager-b1631a7952d72ce56bd10656fffedc8a7fe322ca.tar.gz
querymanager-b1631a7952d72ce56bd10656fffedc8a7fe322ca.zip
most of the postgres primitives/helpers
Diffstat (limited to 'src/querymanager.hh')
-rw-r--r--src/querymanager.hh33
1 files changed, 20 insertions, 13 deletions
diff --git a/src/querymanager.hh b/src/querymanager.hh
index 8f7d638..2b2b053 100644
--- a/src/querymanager.hh
+++ b/src/querymanager.hh
@@ -14,6 +14,7 @@
#include <algorithm>
typedef uint8_t uint8;
+typedef int16_t int16;
typedef uint16_t uint16;
typedef uint32_t uint32;
typedef int64_t int64;
@@ -103,7 +104,7 @@ struct TConfig{
#elif DATABASE_POSTGRESQL
struct{
// NOTE(fusion): Most of these are stored as strings because that is the
- // format the connector expects for connect parameters.
+ // format libpq expects for connection parameters.
char Host[100];
char Port[30];
char DBName[30];
@@ -159,12 +160,14 @@ bool StringCopy(char *Dest, int DestCapacity, const char *Src);
void StringCopyEllipsis(char *Dest, int DestCapacity, const char *Src);
bool StringFormat(char *Dest, int DestCapacity, const char *Format, ...) ATTR_PRINTF(3, 4);
uint32 HashString(const char *String);
-bool ParseIPAddress(const char *String, int *OutAddr);
-bool ReadBooleanConfig(bool *Dest, const char *Val);
-bool ReadIntegerConfig(int *Dest, const char *Val);
-bool ReadSizeConfig(int *Dest, const char *Val);
-bool ReadStringConfig(char *Dest, int DestCapacity, const char *Val);
+int HexDigit(int Ch);
+int ParseHexString(uint8 *Dest, int DestCapacity, const char *String);
+bool ParseIPAddress(int *Dest, const char *String);
+bool ParseBoolean(bool *Dest, const char *String);
+bool ParseInteger(int *Dest, const char *String);
+bool ParseSize(int *Dest, const char *String);
+bool ParseString(char *Dest, int DestCapacity, const char *String);
bool ReadConfig(const char *FileName, TConfig *Config);
// IMPORTANT(fusion): These macros should only be used when `Dest` is a char array
@@ -174,7 +177,8 @@ bool ReadConfig(const char *FileName, TConfig *Config);
#define StringBufCopyEllipsis(Dest, Src) StringCopyEllipsis(Dest, sizeof(Dest), Src);
#define StringBufCopy(Dest, Src) StringCopy(Dest, sizeof(Dest), Src)
#define StringBufCopyN(Dest, Src, SrcLength) StringCopyN(Dest, sizeof(Dest), Src, SrcLength)
-#define ReadStringBufConfig(Dest, Val) ReadStringConfig(Dest, sizeof(Dest), Val)
+#define ParseStringBuf(Dest, String) ParseString(Dest, sizeof(Dest), String)
+#define ParseHexStringBuf(Dest, String) ParseHexString(Dest, sizeof(Dest), String);
// AtomicInt
//==============================================================================
@@ -794,13 +798,9 @@ struct TOnlineCharacter{
char Profession[30];
};
-// NOTE(fusion): Database Management
+// NOTE(fusion): The database struct is OPAQUE and dependent on the current
+// active database driver.
struct TDatabase;
-void DatabaseClose(TDatabase *Database);
-TDatabase *DatabaseOpen(void);
-int DatabaseChanges(TDatabase *Database);
-bool DatabaseCheckpoint(TDatabase *Database);
-int DatabaseMaxConcurrency(void);
// NOTE(fusion): TransactionScope
struct TransactionScope{
@@ -815,6 +815,13 @@ public:
bool Commit(void);
};
+// NOTE(fusion): Database Management
+void DatabaseClose(TDatabase *Database);
+TDatabase *DatabaseOpen(void);
+int DatabaseChanges(TDatabase *Database);
+bool DatabaseCheckpoint(TDatabase *Database);
+int DatabaseMaxConcurrency(void);
+
// NOTE(fusion): Primary Tables
bool GetWorldID(TDatabase *Database, const char *World, int *WorldID);
bool GetWorlds(TDatabase *Database, DynamicArray<TWorld> *Worlds);