3 * UCC (University [of WA] Computer Club) Electronic Accounting System
9 * This file is licenced under the 3-clause BSD Licence. See the file
10 * COPYING for full details.
12 #ifndef _CLIENT__COMMON_H_
13 #define _CLIENT__COMMON_H_
17 typedef struct sItem {
20 int Status; // 0: Availiable, 1: Sold out, -1: Error
27 UI_MODE_BASIC, // Non-NCurses
42 RV_SERVER_ERROR, // Generic for 5xx codes
43 RV_UNKNOWN_ERROR = -1,
45 RV_UNKNOWN_RESPONSE = -3,
48 extern regex_t gArrayRegex;
49 extern regex_t gItemRegex;
50 extern regex_t gSaltRegex;
51 extern regex_t gUserInfoRegex;
52 extern regex_t gUserItemIdentRegex;
55 extern int gbDisallowSelectWithoutBalance;
56 extern int giMinimumBalance;
57 extern int giMaximumBalance;
58 extern enum eUI_Modes giUIMode;
60 extern int gbIsAuthenticated;
61 extern char *gsEffectiveUser;
62 extern char *gsUserName;
63 extern int giUserBalance;
64 extern char *gsUserFlags;
66 extern int giNumItems;
67 extern tItem *gaItems;
69 extern int RunRegex(regex_t *regex, const char *str, int nMatches, regmatch_t *matches, const char *errmsg);
71 extern int ShowNCursesUI(void);
73 extern int OpenConnection(const char *Host, int Port);
74 extern int Authenticate(int Socket);
75 extern int GetUserBalance(int Socket);
76 extern void PopulateItemList(int Socket);
77 extern int Dispense_ItemInfo(int Socket, const char *Type, int ID);
78 extern int DispenseItem(int Socket, const char *Type, int ID);
79 extern int Dispense_AlterBalance(int Socket, const char *Username, int Ammount, const char *Reason);
80 extern int Dispense_SetBalance(int Socket, const char *Username, int Balance, const char *Reason);
81 extern int Dispense_Give(int Socket, const char *Username, int Ammount, const char *Reason);
82 extern int Dispense_Refund(int Socket, const char *Username, const char *Item, int PriceOverride);
83 extern int Dispense_Donate(int Socket, int Ammount, const char *Reason);
84 extern int Dispense_EnumUsers(int Socket);
85 extern int Dispense_ShowUser(int Socket, const char *Username);
86 extern void _PrintUserLine(const char *Line);
87 extern int Dispense_AddUser(int Socket, const char *Username);
88 extern int Dispense_SetUserType(int Socket, const char *Username, const char *TypeString, const char *Reason);
89 extern int Dispense_SetItem(int Socket, const char *Type, int ID, int NewPrice, const char *NewName);
90 extern int DispenseCheckPin(int Socket, const char *Username, const char *Pin);
91 extern int DispenseSetPin(int Socket, const char *Pin);