(svn r22423) -Document: some network stuff

This commit is contained in:
rubidium
2011-05-04 20:24:23 +00:00
parent 14081d91c9
commit 944a5cb7aa
11 changed files with 213 additions and 48 deletions

View File

@@ -27,6 +27,8 @@
#endif
extern bool HasScenario(const ContentInfo *ci, bool md5sum);
/** The client we use to connect to the server. */
ClientNetworkContentSocketHandler _network_content_client;
/** Wrapper function for the HasProc */
@@ -163,6 +165,10 @@ bool ClientNetworkContentSocketHandler::Receive_SERVER_INFO(Packet *p)
return true;
}
/**
* Request the content list for the given type.
* @param type The content type to request the list for.
*/
void ClientNetworkContentSocketHandler::RequestContentList(ContentType type)
{
if (type == CONTENT_TYPE_END) {
@@ -188,6 +194,11 @@ void ClientNetworkContentSocketHandler::RequestContentList(ContentType type)
this->SendPacket(p);
}
/**
* Request the content list for a given number of content IDs.
* @param count The number of IDs to request.
* @param content_ids The unique identifiers of the content to request information about.
*/
void ClientNetworkContentSocketHandler::RequestContentList(uint count, const ContentID *content_ids)
{
this->Connect();
@@ -213,6 +224,11 @@ void ClientNetworkContentSocketHandler::RequestContentList(uint count, const Con
}
}
/**
* Request the content list for a list of content.
* @param cv List with unique IDs and MD5 checksums.
* @param send_md5sum Whether we want a MD5 checksum matched set of files or not.
*/
void ClientNetworkContentSocketHandler::RequestContentList(ContentVector *cv, bool send_md5sum)
{
if (cv == NULL) return;
@@ -258,6 +274,12 @@ void ClientNetworkContentSocketHandler::RequestContentList(ContentVector *cv, bo
}
}
/**
* Actually begin downloading the content we selected.
* @param[out] files The number of files we are going to download.
* @param[out] bytes The number of bytes we are going to download.
* @param fallback Whether to use the fallback or not.
*/
void ClientNetworkContentSocketHandler::DownloadSelectedContent(uint &files, uint &bytes, bool fallback)
{
bytes = 0;
@@ -283,6 +305,10 @@ void ClientNetworkContentSocketHandler::DownloadSelectedContent(uint &files, uin
}
}
/**
* Initiate downloading the content over HTTP.
* @param content The content to download.
*/
void ClientNetworkContentSocketHandler::DownloadSelectedContentHTTP(const ContentIDList &content)
{
uint count = content.Length();
@@ -307,6 +333,10 @@ void ClientNetworkContentSocketHandler::DownloadSelectedContentHTTP(const Conten
/* NetworkHTTPContentConnecter takes over freeing of content_request! */
}
/**
* Initiate downloading the content over the fallback protocol.
* @param content The content to download.
*/
void ClientNetworkContentSocketHandler::DownloadSelectedContentFallback(const ContentIDList &content)
{
uint count = content.Length();
@@ -661,9 +691,7 @@ void ClientNetworkContentSocketHandler::OnReceiveData(const char *data, size_t l
}
/**
* Create a socket handler with the given socket and (server) address.
* @param s the socket to communicate over
* @param sin the IP/port of the server
* Create a socket handler to handle the connection.
*/
ClientNetworkContentSocketHandler::ClientNetworkContentSocketHandler() :
NetworkContentSocketHandler(),
@@ -683,8 +711,13 @@ ClientNetworkContentSocketHandler::~ClientNetworkContentSocketHandler()
for (ContentIterator iter = this->infos.Begin(); iter != this->infos.End(); iter++) delete *iter;
}
/** Connect to the content server. */
class NetworkContentConnecter : TCPConnecter {
public:
/**
* Initiate the connecting.
* @param address The address of the server.
*/
NetworkContentConnecter(const NetworkAddress &address) : TCPConnecter(address) {}
virtual void OnFailure()