ClientInterface::getClientIDs doesn't need a std::list. Use a std::vector for better...
authorLoic Blot <loic.blot@unix-experience.fr>
Wed, 4 Mar 2015 15:30:24 +0000 (16:30 +0100)
committerLoic Blot <loic.blot@unix-experience.fr>
Wed, 4 Mar 2015 15:30:24 +0000 (16:30 +0100)
src/clientiface.cpp
src/clientiface.h
src/network/packethandlers/server.cpp
src/server.cpp

index 6180cf5da032a4f1280b21bef3a753b9cbe23d78..12697989731a8562363d585899d4c65b2169013a 100644 (file)
@@ -560,9 +560,9 @@ ClientInterface::~ClientInterface()
        }
 }
 
-std::list<u16> ClientInterface::getClientIDs(ClientState min_state)
+std::vector<u16> ClientInterface::getClientIDs(ClientState min_state)
 {
-       std::list<u16> reply;
+       std::vector<u16> reply;
        JMutexAutoLock clientslock(m_clients_mutex);
 
        for(std::map<u16, RemoteClient*>::iterator
@@ -596,20 +596,22 @@ void ClientInterface::UpdatePlayerList()
 {
        if (m_env != NULL)
                {
-               std::list<u16> clients = getClientIDs();
+               std::vector<u16> clients = getClientIDs();
                m_clients_names.clear();
 
 
                if(!clients.empty())
                        infostream<<"Players:"<<std::endl;
-               for(std::list<u16>::iterator
+
+               for(std::vector<u16>::iterator
                        i = clients.begin();
-                       i != clients.end(); ++i)
-               {
+                       i != clients.end(); ++i) {
                        Player *player = m_env->getPlayer(*i);
-                       if(player==NULL)
+
+                       if (player == NULL)
                                continue;
-                       infostream<<"* "<<player->getName()<<"\t";
+
+                       infostream << "* " << player->getName() << "\t";
 
                        {
                                JMutexAutoLock clientslock(m_clients_mutex);
@@ -617,6 +619,7 @@ void ClientInterface::UpdatePlayerList()
                                if(client != NULL)
                                        client->PrintInfo(infostream);
                        }
+
                        m_clients_names.push_back(player->getName());
                }
        }
index 129d3f861a84e534f978ca4f3bebc1a1920d1605..2f265b128f6010158a023b391a65c585d5325ddd 100644 (file)
@@ -388,7 +388,7 @@ public:
        void step(float dtime);
 
        /* get list of active client id's */
-       std::list<u16> getClientIDs(ClientState min_state=CS_Active);
+       std::vector<u16> getClientIDs(ClientState min_state=CS_Active);
 
        /* get list of client player names */
        std::vector<std::string> getPlayerNames();
index aeaa2f3f3626fb60358ddc1fa6aca54240ac2226..62ce7eb5530283b4aff32517719e9073cedeeef8 100644 (file)
@@ -851,10 +851,9 @@ void Server::handleCommand_ChatMessage(NetworkPacket* pkt)
                else {
                        actionstream << "CHAT: " << wide_to_narrow(line)<<std::endl;
 
-                       std::list<u16> clients = m_clients.getClientIDs();
+                       std::vector<u16> clients = m_clients.getClientIDs();
 
-                       for (std::list<u16>::iterator
-                               i = clients.begin();
+                       for (std::vector<u16>::iterator i = clients.begin();
                                i != clients.end(); ++i) {
                                if (*i != pkt->getPeerId())
                                        SendChatMessage(*i, line);
index 51b90ce45cff1f940363573e06f8c5a7a600117a..2587c2d89e16259b60961b6a85fecde43e5916c8 100644 (file)
@@ -1374,16 +1374,14 @@ void Server::setInventoryModified(const InventoryLocation &loc)
 
 void Server::SetBlocksNotSent(std::map<v3s16, MapBlock *>& block)
 {
-       std::list<u16> clients = m_clients.getClientIDs();
+       std::vector<u16> clients = m_clients.getClientIDs();
        m_clients.Lock();
        // Set the modified blocks unsent for all the clients
-       for (std::list<u16>::iterator
-                i = clients.begin();
+       for (std::vector<u16>::iterator i = clients.begin();
                 i != clients.end(); ++i) {
-                       RemoteClient *client = m_clients.lockedGetClientNoEx(*i);
-                       if (client != NULL)
+                       if (RemoteClient *client = m_clients.lockedGetClientNoEx(*i))
                                client->SetBlocksNotSent(block);
-               }
+       }
        m_clients.Unlock();
 }
 
@@ -1954,15 +1952,15 @@ s32 Server::playSound(const SimpleSoundSpec &spec,
        }
        else
        {
-               std::list<u16> clients = m_clients.getClientIDs();
+               std::vector<u16> clients = m_clients.getClientIDs();
 
-               for(std::list<u16>::iterator
-                               i = clients.begin(); i != clients.end(); ++i)
-               {
+               for(std::vector<u16>::iterator
+                               i = clients.begin(); i != clients.end(); ++i) {
                        Player *player = m_env->getPlayer(*i);
                        if(!player)
                                continue;
-                       if(pos_exists){
+
+                       if(pos_exists) {
                                if(player->getPosition().getDistanceFrom(pos) >
                                                params.max_hear_distance)
                                        continue;
@@ -1970,6 +1968,7 @@ s32 Server::playSound(const SimpleSoundSpec &spec,
                        dst_clients.push_back(*i);
                }
        }
+
        if(dst_clients.empty())
                return -1;
 
@@ -2025,9 +2024,8 @@ void Server::sendRemoveNode(v3s16 p, u16 ignore_id,
        NetworkPacket* pkt = new NetworkPacket(TOCLIENT_REMOVENODE, 6);
        *pkt << p;
 
-       std::list<u16> clients = m_clients.getClientIDs();
-       for(std::list<u16>::iterator
-               i = clients.begin();
+       std::vector<u16> clients = m_clients.getClientIDs();
+       for(std::vector<u16>::iterator i = clients.begin();
                i != clients.end(); ++i) {
                if(far_players) {
                        // Get player
@@ -2055,22 +2053,16 @@ void Server::sendAddNode(v3s16 p, MapNode n, u16 ignore_id,
        float maxd = far_d_nodes*BS;
        v3f p_f = intToFloat(p, BS);
 
-       std::list<u16> clients = m_clients.getClientIDs();
-       for(std::list<u16>::iterator
-                       i = clients.begin();
-                       i != clients.end(); ++i)
-               {
+       std::vector<u16> clients = m_clients.getClientIDs();
+       for(std::vector<u16>::iterator i = clients.begin();
+                       i != clients.end(); ++i) {
 
-               if(far_players)
-               {
+               if(far_players) {
                        // Get player
-                       Player *player = m_env->getPlayer(*i);
-                       if(player)
-                       {
+                       if(Player *player = m_env->getPlayer(*i)) {
                                // If player is far away, only set modified blocks not sent
                                v3f player_pos = player->getPosition();
-                               if(player_pos.getDistanceFrom(p_f) > maxd)
-                               {
+                               if(player_pos.getDistanceFrom(p_f) > maxd) {
                                        far_players->push_back(*i);
                                        continue;
                                }
@@ -2102,12 +2094,10 @@ void Server::sendAddNode(v3s16 p, MapNode n, u16 ignore_id,
 
 void Server::setBlockNotSent(v3s16 p)
 {
-       std::list<u16> clients = m_clients.getClientIDs();
+       std::vector<u16> clients = m_clients.getClientIDs();
        m_clients.Lock();
-       for(std::list<u16>::iterator
-               i = clients.begin();
-               i != clients.end(); ++i)
-       {
+       for(std::vector<u16>::iterator i = clients.begin();
+               i != clients.end(); ++i) {
                RemoteClient *client = m_clients.lockedGetClientNoEx(*i);
                client->SetBlockNotSent(p);
        }
@@ -2153,13 +2143,11 @@ void Server::SendBlocks(float dtime)
        {
                ScopeProfiler sp(g_profiler, "Server: selecting blocks for sending");
 
-               std::list<u16> clients = m_clients.getClientIDs();
+               std::vector<u16> clients = m_clients.getClientIDs();
 
                m_clients.Lock();
-               for(std::list<u16>::iterator
-                       i = clients.begin();
-                       i != clients.end(); ++i)
-               {
+               for(std::vector<u16>::iterator i = clients.begin();
+                       i != clients.end(); ++i) {
                        RemoteClient *client = m_clients.lockedGetClientNoEx(*i, CS_Active);
 
                        if (client == NULL)
@@ -2630,26 +2618,24 @@ void Server::DeleteClient(u16 peer_id, ClientDeletionReason reason)
                        Print out action
                */
                {
-                       if(player != NULL && reason != CDR_DENY)
-                       {
+                       if(player != NULL && reason != CDR_DENY) {
                                std::ostringstream os(std::ios_base::binary);
-                               std::list<u16> clients = m_clients.getClientIDs();
+                               std::vector<u16> clients = m_clients.getClientIDs();
 
-                               for(std::list<u16>::iterator
-                                       i = clients.begin();
-                                       i != clients.end(); ++i)
-                               {
+                               for(std::vector<u16>::iterator i = clients.begin();
+                                       i != clients.end(); ++i) {
                                        // Get player
                                        Player *player = m_env->getPlayer(*i);
                                        if(!player)
                                                continue;
+
                                        // Get name of player
-                                       os<<player->getName()<<" ";
+                                       os << player->getName() << " ";
                                }
 
-                               actionstream<<player->getName()<<" "
-                                               <<(reason==CDR_TIMEOUT?"times out.":"leaves game.")
-                                               <<" List of players: "<<os.str()<<std::endl;
+                               actionstream << player->getName() << " "
+                                               << (reason == CDR_TIMEOUT ? "times out." : "leaves game.")
+                                               << " List of players: " << os.str() << std::endl;
                        }
                }
                {
@@ -2723,10 +2709,9 @@ std::wstring Server::getStatusString()
        // Information about clients
        bool first = true;
        os<<L", clients={";
-       std::list<u16> clients = m_clients.getClientIDs();
-       for(std::list<u16>::iterator i = clients.begin();
-               i != clients.end(); ++i)
-       {
+       std::vector<u16> clients = m_clients.getClientIDs();
+       for(std::vector<u16>::iterator i = clients.begin();
+               i != clients.end(); ++i) {
                // Get player
                Player *player = m_env->getPlayer(*i);
                // Get name of player
@@ -2735,12 +2720,12 @@ std::wstring Server::getStatusString()
                        name = narrow_to_wide(player->getName());
                // Add name to information string
                if(!first)
-                       os<<L", ";
+                       os << L", ";
                else
                        first = false;
-               os<<name;
+               os << name;
        }
-       os<<L"}";
+       os << L"}";
        if(((ServerMap*)(&m_env->getMap()))->isSavingEnabled() == false)
                os<<std::endl<<L"# Server: "<<" WARNING: Map saving is disabled.";
        if(g_settings->get("motd") != "")
@@ -2763,11 +2748,10 @@ bool Server::checkPriv(const std::string &name, const std::string &priv)
 
 void Server::reportPrivsModified(const std::string &name)
 {
-       if(name == ""){
-               std::list<u16> clients = m_clients.getClientIDs();
-               for(std::list<u16>::iterator
-                               i = clients.begin();
-                               i != clients.end(); ++i){
+       if(name == "") {
+               std::vector<u16> clients = m_clients.getClientIDs();
+               for(std::vector<u16>::iterator i = clients.begin();
+                               i != clients.end(); ++i) {
                        Player *player = m_env->getPlayer(*i);
                        reportPrivsModified(player->getName());
                }