mirror of
https://github.com/minetest/minetest.git
synced 2024-12-25 15:42:24 +01:00
Small SendableMediaAnnouncement cleanup
-> Remove the SendableMediaAnnouncement struct -> Forge the packet directly in the m_media loop, spare one loop and the construction of a vector -> Use preincrement to spare iterator copies
This commit is contained in:
parent
eb3aac20c8
commit
05fe9ab2d4
@ -2330,44 +2330,22 @@ void Server::fillMediaCache()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct SendableMediaAnnouncement
|
|
||||||
{
|
|
||||||
std::string name;
|
|
||||||
std::string sha1_digest;
|
|
||||||
|
|
||||||
SendableMediaAnnouncement(const std::string &name_="",
|
|
||||||
const std::string &sha1_digest_=""):
|
|
||||||
name(name_),
|
|
||||||
sha1_digest(sha1_digest_)
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
|
|
||||||
void Server::sendMediaAnnouncement(u16 peer_id)
|
void Server::sendMediaAnnouncement(u16 peer_id)
|
||||||
{
|
{
|
||||||
DSTACK(__FUNCTION_NAME);
|
DSTACK(__FUNCTION_NAME);
|
||||||
|
|
||||||
verbosestream<<"Server: Announcing files to id("<<peer_id<<")"
|
verbosestream << "Server: Announcing files to id(" << peer_id << ")"
|
||||||
<<std::endl;
|
<< std::endl;
|
||||||
|
|
||||||
std::vector<SendableMediaAnnouncement> file_announcements;
|
|
||||||
|
|
||||||
for (std::map<std::string, MediaInfo>::iterator i = m_media.begin();
|
|
||||||
i != m_media.end(); i++){
|
|
||||||
// Put in list
|
|
||||||
file_announcements.push_back(
|
|
||||||
SendableMediaAnnouncement(i->first, i->second.sha1_digest));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make packet
|
// Make packet
|
||||||
std::ostringstream os(std::ios_base::binary);
|
std::ostringstream os(std::ios_base::binary);
|
||||||
|
|
||||||
NetworkPacket pkt(TOCLIENT_ANNOUNCE_MEDIA, 0, peer_id);
|
NetworkPacket pkt(TOCLIENT_ANNOUNCE_MEDIA, 0, peer_id);
|
||||||
pkt << (u16) file_announcements.size();
|
pkt << (u16) m_media.size();
|
||||||
|
|
||||||
for (std::vector<SendableMediaAnnouncement>::iterator
|
for (std::map<std::string, MediaInfo>::iterator i = m_media.begin();
|
||||||
j = file_announcements.begin();
|
i != m_media.end(); ++i) {
|
||||||
j != file_announcements.end(); ++j) {
|
pkt << i->first << i->second.sha1_digest;
|
||||||
pkt << j->name << j->sha1_digest;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pkt << g_settings->get("remote_media");
|
pkt << g_settings->get("remote_media");
|
||||||
|
Loading…
Reference in New Issue
Block a user