X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Fserver%2Fcommon.h;h=7020dc89ff63e8ac26e039f04e66754a70e3b3a1;hb=5df82cb2854e4f7c693c8a31e0c2d56682a93855;hp=f2eea0cdb066b4cca63a024b834cf2f47b24cce7;hpb=dce0ef0f3c15f9e38e57d4a14c904c339affac4e;p=tpg%2Fopendispense2.git diff --git a/src/server/common.h b/src/server/common.h index f2eea0c..7020dc8 100644 --- a/src/server/common.h +++ b/src/server/common.h @@ -9,6 +9,8 @@ #ifndef _COMMON_H_ #define _COMMON_H_ +#include + // === CONSTANTS === #define DEFAULT_CONFIG_FILE "/etc/opendispense/main.cfg" #define DEFAULT_ITEM_FILE "/etc/opendispense/items.cfg" @@ -50,6 +52,10 @@ struct sHandler { char *Name; int (*Init)(int NConfig, tConfigItem *Config); + /** + * \brief Check if an item can be dispensed + * \return Boolean Failure + */ int (*CanDispense)(int User, int ID); int (*DoDispense)(int User, int ID); }; @@ -62,7 +68,16 @@ extern int giNumHandlers; extern int giDebugLevel; // === FUNCTIONS === +// --- Helpers -- +extern void CompileRegex(regex_t *Regex, const char *Pattern, int Flags); +extern int RunRegex(regex_t *regex, const char *string, int nMatches, regmatch_t *matches, const char *errorMessage); +extern int InitSerial(const char *Path, int BaudRate); +extern char *mkstr(const char *Format, ...); + +// --- Dispense --- extern int DispenseItem(int User, tItem *Item); +extern int DispenseGive(int SrcUser, int DestUser, int Ammount, const char *ReasonGiven); +extern int DispenseAdd(int User, int ByUser, int Ammount, const char *ReasonGiven); // --- Logging --- extern void Log_Error(const char *Format, ...); @@ -70,6 +85,7 @@ extern void Log_Info(const char *Format, ...); // --- Cokebank Functions --- extern int Transfer(int SourceUser, int DestUser, int Ammount, const char *Reason); +extern int GetFlags(int User); extern int GetBalance(int User); extern char *GetUserName(int User); extern int GetUserID(const char *Username);