60#define ENGINE_VERSION "3.0"
61#define SERVER_TIMEOUT 3000
80typedef enum {sl_idle, sl_listxfer, sl_lanlist, sl_querying} GServerListState;
87typedef enum {cm_int, cm_float, cm_strcase, cm_stricase} GCompareMode;
90typedef enum {qt_basic, qt_info, qt_rules, qt_players, qt_info_rules, qt_status, qt_grouprooms, qt_masterinfo} GQueryType;
93#define LIST_STATECHANGED 1
94#define LIST_PROGRESS 2
97typedef void (*ListCallBackFn)(GServerList serverlist,
int msg,
void *instance,
void *param1,
void *param2);
100typedef void (*KeyEnumFn)(
char *key,
char *value,
void *instance);
104#define GCALLBACK_FUNCTION 1
109#define GE_NOCONNECT 3
111#define GE_DATAERROR 5
127GServerList ServerListNew(
const char *gamename,
const char *enginename,
const char *seckey,
int maxconcupdates,
void *CallBackFn,
int CallBackFnType,
void *instance);
132void ServerListFree(GServerList serverlist);
144GError ServerListUpdate(GServerList serverlist, gbool async);
168GError ServerListUpdate2(GServerList serverlist, gbool async,
char *filter, GQueryType querytype);
183GError ServerListLANUpdate(GServerList serverlist, gbool async,
int startsearchport,
int endsearchport,
int searchdelta);
197GError ServerListAuxUpdate(GServerList serverlist,
const char *ip,
int port, gbool async, GQueryType querytype);
205void ServerListRemoveServer(GServerList serverlist,
char *ip,
int port);
211GError ServerListThink(GServerList serverlist);
216GError ServerListHalt(GServerList serverlist);
222GError ServerListClear(GServerList serverlist);
227GServerListState ServerListState(GServerList serverlist);
232char *ServerListErrorDesc(GServerList serverlist, GError error);
237GServer ServerListGetServer(GServerList serverlist,
int index);
243int ServerListCount(GServerList serverlist);
250void ServerListSort(GServerList serverlist, gbool ascending,
char *sortkey, GCompareMode comparemode);
261int ServerGetPing(GServer server);
266char *ServerGetAddress(GServer server);
271unsigned int ServerGetInetAddress(GServer server);
278int ServerGetQueryPort(GServer server);
284char *ServerGetStringValue(GServer server,
char *key,
char *sdefault);
285int ServerGetIntValue(GServer server,
char *key,
int idefault);
286double ServerGetFloatValue(GServer server,
char *key,
double fdefault);
293char *ServerGetPlayerStringValue(GServer server,
int playernum,
char *key,
char *sdefault);
294int ServerGetPlayerIntValue(GServer server,
int playernum,
char *key,
int idefault);
295double ServerGetPlayerFloatValue(GServer server,
int playernum,
char *key,
double fdefault);
301void ServerEnumKeys(GServer server, KeyEnumFn KeyFn,
void *instance);
Definition gserverlist.c:115