OpenTTD Source 20250505-master-ga46b885640
|
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 "../fileio_func.h"
#include "../base_media_base.h"
#include "../base_media_graphics.h"
#include "../base_media_music.h"
#include "../base_media_sounds.h"
#include "../settings_type.h"
#include "../strings_func.h"
#include "../timer/timer.h"
#include "../timer/timer_window.h"
#include "../core/string_consumer.hpp"
#include "network_content.h"
#include "table/strings.h"
#include <zlib.h>
#include "../safeguards.h"
Go to the source code of this file.
Data Structures | |
class | NetworkContentConnecter |
Connect to the content server. More... | |
Typedefs | |
using | HasContentProc = bool(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 HasContentProc * | GetHasContentProcforContentType (ContentType type) |
Get the has-content check function for the given content type. | |
static std::string | 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. | |
static constexpr auto | CONTENT_QUEUE_TIMEOUT = std::chrono::milliseconds(100) |
Timeout after queueing content for it to try to be requested. | |
static TimeoutTimer< TimerWindow > | _request_queue_timeout |
Content sending/receiving part of the network protocol.
Definition in file network_content.cpp.
using HasContentProc = bool(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 62 of file network_content.cpp.
|
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 371 of file network_content.cpp.
References ContentInfo::filename, GetContentInfoSubDir(), NO_DIRECTORY, SP_AUTODOWNLOAD_DIR, and ContentInfo::type.
Referenced by ClientNetworkContentSocketHandler::AfterDownload(), ClientNetworkContentSocketHandler::BeforeDownload(), and GunzipFile().
|
static |
Get the has-content check function for the given content type.
type | Content type to get check function for. |
Definition at line 69 of file network_content.cpp.
References 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, AI::HasAI(), Game::HasGame(), HasGRFConfig(), HasScenario(), BaseMedia< SoundsSet >::HasSet(), BaseMedia< MusicSet >::HasSet(), and BaseMedia< GraphicsSet >::HasSet().
Referenced by ClientNetworkContentSocketHandler::Receive_SERVER_INFO().
|
static |
Gunzip a given file and remove the .gz if successful.
ci | container with filename |
Definition at line 388 of file network_content.cpp.
References GetFullFilename(), and FileHandle::Open().
Referenced by ClientNetworkContentSocketHandler::AfterDownload().
|
static |
Wrapper function for the HasProc.
Definition at line 50 of file network_content.cpp.
References FGCM_ANY, FGCM_EXACT, FindGRFConfig(), ContentInfo::md5sum, and ContentInfo::unique_id.
Referenced by GetHasContentProcforContentType().
|
extern |
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 694 of file fios.cpp.
References FindScenario().
Referenced by GetHasContentProcforContentType().
ClientNetworkContentSocketHandler _network_content_client |
The client we use to connect to the server.
Definition at line 47 of file network_content.cpp.
Referenced by BaseNetworkContentDownloadStatusWindow::BaseNetworkContentDownloadStatusWindow(), BootstrapAskForDownloadWindow::BootstrapAskForDownloadWindow(), NetworkContentListWindow::BuildContentList(), BootstrapAskForDownloadWindow::Close(), NetworkContentListWindow::Close(), BaseNetworkContentDownloadStatusWindow::Close(), NetworkContentListWindow::DrawDetails(), NetworkBackgroundLoop(), NetworkContentListWindow::NetworkContentListWindow(), BootstrapAskForDownloadWindow::OnClick(), NetworkContentDownloadStatusWindow::OnClick(), NetworkContentListWindow::OnClick(), BootstrapAskForDownloadWindow::OnConnect(), NetworkContentConnecter::OnConnect(), NetworkContentConnecter::OnFailure(), NetworkContentListWindow::OnKeyPress(), BootstrapAskForDownloadWindow::OnReceiveContentInfo(), NetworkContentListWindow::OnReceiveContentInfo(), and ShowNetworkContentListWindow().
|
static |
Definition at line 784 of file network_content.cpp.
|
staticconstexpr |
Timeout after queueing content for it to try to be requested.
Definition at line 782 of file network_content.cpp.
Referenced by ClientNetworkContentSocketHandler::RequestQueuedContentInfo().