OpenTTD
|
This file handles the GameList Also, it handles the request to a server for data about the server. More...
#include "../stdafx.h"
#include "../debug.h"
#include "../window_func.h"
#include "../thread/thread.h"
#include "network_internal.h"
#include "network_udp.h"
#include "network_gamelist.h"
#include "../safeguards.h"
Go to the source code of this file.
Functions | |
void | NetworkGameListAddItemDelayed (NetworkGameList *item) |
Add a new item to the linked gamelist, but do it delayed in the next tick or so to prevent race conditions. | |
static void | NetworkGameListHandleDelayedInsert () |
Perform the delayed (thread safe) insertion into the game list. | |
NetworkGameList * | NetworkGameListAddItem (NetworkAddress address) |
Add a new item to the linked gamelist. | |
void | NetworkGameListRemoveItem (NetworkGameList *remove) |
Remove an item from the gamelist linked list. | |
void | NetworkGameListRequery () |
Requeries the (game) servers we have not gotten a reply from. | |
void | NetworkAfterNewGRFScan () |
Rebuild the GRFConfig's of the servers in the game list as we did a rescan and might have found new NewGRFs. |
Variables | |
NetworkGameList * | _network_game_list = NULL |
Game list of this client. | |
static ThreadMutex * | _network_game_list_mutex = ThreadMutex::New() |
Mutex for handling delayed insertion/querying of servers. | |
static NetworkGameList * | _network_game_delayed_insertion_list = NULL |
The games to insert when the GUI thread has time for us. | |
static const uint | MAX_GAME_LIST_REQUERY_COUNT = 10 |
How often do we requery in number of times per server? | |
static const uint | REQUERY_EVERY_X_GAMELOOPS = 60 |
How often do we requery in time? | |
static const uint | REFRESH_GAMEINFO_X_REQUERIES = 50 |
Refresh the game info itself after REFRESH_GAMEINFO_X_REQUERIES * REQUERY_EVERY_X_GAMELOOPS game loops. |
This file handles the GameList Also, it handles the request to a server for data about the server.
Definition in file network_gamelist.cpp.
NetworkGameList* NetworkGameListAddItem | ( | NetworkAddress | address | ) |
Add a new item to the linked gamelist.
If the IP and Port match return the existing item instead of adding it again
address | the address of the to-be added item |
Definition at line 80 of file network_gamelist.cpp.
References NetworkGameList::address, DEBUG, NetworkAddress::GetHostname(), NetworkGameList::next, StrEmpty(), and UpdateNetworkGameWindow().
Referenced by NetworkGameListHandleDelayedInsert(), and ClientNetworkUDPSocketHandler::Receive_SERVER_RESPONSE().
void NetworkGameListAddItemDelayed | ( | NetworkGameList * | item | ) |
Add a new item to the linked gamelist, but do it delayed in the next tick or so to prevent race conditions.
item | the item to add. Will be freed once added. |
Definition at line 39 of file network_gamelist.cpp.
References _network_game_delayed_insertion_list, ThreadMutex::BeginCritical(), ThreadMutex::EndCritical(), and NetworkGameList::next.
Referenced by NetworkUDPQueryServer().
void NetworkGameListRemoveItem | ( | NetworkGameList * | remove | ) |
Remove an item from the gamelist linked list.
remove | pointer to the item to be removed |
Definition at line 119 of file network_gamelist.cpp.
References ClearGRFConfigList(), DEBUG, free(), NetworkGameList::next, and UpdateNetworkGameWindow().
Referenced by NetworkGameWindow::OnKeyPress().
|
static |
The games to insert when the GUI thread has time for us.
Definition at line 32 of file network_gamelist.cpp.
Referenced by NetworkGameListAddItemDelayed(), and NetworkGameListHandleDelayedInsert().
|
static |
Mutex for handling delayed insertion/querying of servers.
Definition at line 30 of file network_gamelist.cpp.