Content sending/receiving part of the network protocol. More...
#include "../stdafx.h"
#include "../rev.h"
#include "../ai/ai.hpp"
#include "../game/game.hpp"
#include "../window_func.h"
#include "../error.h"
#include "../base_media_base.h"
#include "../settings_type.h"
#include "network_content.h"
#include "table/strings.h"
#include <zlib.h>
Go to the source code of this file.
Data Structures | |
class | NetworkContentConnecter |
Connect to the content server. More... | |
Defines | |
#define | check_not_null(p) { if ((p) == NULL) { this->OnFailure(); return; } } |
#define | check_and_terminate(p) { check_not_null(p); *(p) = '\0'; } |
Typedefs | |
typedef bool(* | HasProc )(const ContentInfo *ci, bool md5sum) |
Check whether a function piece of content is locally known. | |
Functions | |
bool | HasScenario (const ContentInfo *ci, bool md5sum) |
Check whether we've got a given scenario based on its unique ID. | |
static bool | HasGRFConfig (const ContentInfo *ci, bool md5sum) |
Wrapper function for the HasProc. | |
static char * | GetFullFilename (const ContentInfo *ci, bool compressed) |
Determine the full filename of a piece of content information. | |
static bool | GunzipFile (const ContentInfo *ci) |
Gunzip a given file and remove the .gz if successful. | |
Variables | |
ClientNetworkContentSocketHandler | _network_content_client |
The client we use to connect to the server. |
Content sending/receiving part of the network protocol.
Definition in file network_content.cpp.
typedef bool(* HasProc)(const ContentInfo *ci, bool md5sum) |
Check whether a function piece of content is locally known.
Matches on the unique ID and possibly the MD5 checksum.
ci | the content info to search for | |
md5sum | also match the MD5 checksum? |
Definition at line 48 of file network_content.cpp.
static char* GetFullFilename | ( | const ContentInfo * | ci, | |
bool | compressed | |||
) | [static] |
Determine the full filename of a piece of content information.
ci | the information to get the filename from | |
compressed | should the filename end with .gz? |
Definition at line 385 of file network_content.cpp.
References PacketReader::buf, CONTENT_TYPE_AI, CONTENT_TYPE_AI_LIBRARY, CONTENT_TYPE_BASE_GRAPHICS, CONTENT_TYPE_BASE_MUSIC, CONTENT_TYPE_BASE_SOUNDS, CONTENT_TYPE_GAME, CONTENT_TYPE_GAME_LIBRARY, CONTENT_TYPE_HEIGHTMAP, CONTENT_TYPE_NEWGRF, CONTENT_TYPE_SCENARIO, ContentInfo::filename, lastof, lengthof, SP_AUTODOWNLOAD_DIR, strecat(), and ContentInfo::type.
Referenced by ClientNetworkContentSocketHandler::AfterDownload(), ClientNetworkContentSocketHandler::BeforeDownload(), and GunzipFile().
static bool GunzipFile | ( | const ContentInfo * | ci | ) | [static] |
Gunzip a given file and remove the .gz if successful.
ci | container with filename |
Definition at line 414 of file network_content.cpp.
References GetFullFilename().
Referenced by ClientNetworkContentSocketHandler::AfterDownload().
bool HasScenario | ( | const ContentInfo * | ci, | |
bool | md5sum | |||
) |
Check whether we've got a given scenario based on its unique ID.
ci | the content info to compare it to | |
md5sum | whether to look at the md5sum or the id |
Definition at line 646 of file fios.cpp.
References SmallVector< T, S >::Begin(), SmallVector< T, S >::End(), ContentInfo::md5sum, ScenarioScanner::Scan(), and ContentInfo::unique_id.
The client we use to connect to the server.
Definition at line 33 of file network_content.cpp.
Referenced by BaseNetworkContentDownloadStatusWindow::BaseNetworkContentDownloadStatusWindow(), BootstrapAskForDownloadWindow::BootstrapAskForDownloadWindow(), NetworkContentListWindow::BuildContentList(), NetworkContentListWindow::DrawDetails(), NetworkContentListWindow::NetworkContentListWindow(), AIConfigWindow::OnClick(), BootstrapAskForDownloadWindow::OnConnect(), NetworkContentListWindow::OnReceiveContentInfo(), BootstrapAskForDownloadWindow::OnReceiveContentInfo(), ShowNetworkContentListWindow(), BaseNetworkContentDownloadStatusWindow::~BaseNetworkContentDownloadStatusWindow(), BootstrapAskForDownloadWindow::~BootstrapAskForDownloadWindow(), and NetworkContentListWindow::~NetworkContentListWindow().