Prevent head of line blocking and track server resource download progress
This commit is contained in:
parent
344ef4093a
commit
2aab3e9e60
14 changed files with 179 additions and 83 deletions
|
|
@ -41,7 +41,7 @@ void NetServer::update() {
|
|||
clientsToAdd.clear();
|
||||
}
|
||||
|
||||
bool NetServer::is_disconnected() {
|
||||
bool NetServer::is_disconnected() const {
|
||||
return isDisconnected;
|
||||
}
|
||||
|
||||
|
|
@ -178,6 +178,16 @@ void NetServer::ClientData::parse_received_messages(NetServer& server) {
|
|||
}
|
||||
}
|
||||
|
||||
NetLibrary::DownloadProgress NetServer::ClientData::get_progress_into_fragmented_message(const std::string& channel) const {
|
||||
auto it = pfm.find(channel);
|
||||
if(it == pfm.end())
|
||||
return {0, 0};
|
||||
auto& m = it->second;
|
||||
if(m.partialFragmentMessage.empty())
|
||||
return {0, 0};
|
||||
return {m.partialFragmentMessageLoc, m.partialFragmentMessage.size()};
|
||||
}
|
||||
|
||||
void NetServer::add_recv_callback(MessageCommandType commandID, const NetServerRecvCallback& callback) {
|
||||
recvCallbacks[commandID] = callback;
|
||||
}
|
||||
|
|
@ -186,6 +196,10 @@ void NetServer::add_disconnect_callback(const NetServerDisconnectCallback& callb
|
|||
disconnectCallback = callback;
|
||||
}
|
||||
|
||||
const std::vector<std::shared_ptr<NetServer::ClientData>> NetServer::get_client_list() const {
|
||||
return clients;
|
||||
}
|
||||
|
||||
NetServer::~NetServer() {
|
||||
if(directConnectClient)
|
||||
directConnectClient->isDisconnected = true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue