mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-06-19 03:49:29 -04:00
Count the friends (gpg id's) instead of the locations (ssl id's) in the statusbar.
Moved update of the friends from QTimer to signals. Combined p3LinkMgr::getFriendCount and p3LinkMgr::getOnlineCount and moved to p3PeerMgr. git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4986 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
4867c76bb1
commit
45ac04e2e7
11 changed files with 111 additions and 89 deletions
|
@ -252,14 +252,12 @@ void p3LinkMgrIMPL::getFriendList(std::list<std::string> &ssl_peers)
|
|||
{
|
||||
RsStackMutex stack(mLinkMtx); /****** STACK LOCK MUTEX *******/
|
||||
|
||||
std::map<std::string, peerConnectState>::iterator it;
|
||||
std::map<std::string, peerConnectState>::iterator it;
|
||||
for(it = mFriendList.begin(); it != mFriendList.end(); it++)
|
||||
{
|
||||
ssl_peers.push_back(it->first);
|
||||
}
|
||||
return;
|
||||
|
||||
|
||||
}
|
||||
|
||||
bool p3LinkMgrIMPL::getPeerName(const std::string &ssl_id, std::string &name)
|
||||
|
@ -268,34 +266,6 @@ bool p3LinkMgrIMPL::getPeerName(const std::string &ssl_id, std::string &name)
|
|||
}
|
||||
|
||||
|
||||
int p3LinkMgrIMPL::getFriendCount()
|
||||
{
|
||||
RsStackMutex stack(mLinkMtx); /****** STACK LOCK MUTEX *******/
|
||||
|
||||
return mFriendList.size();
|
||||
|
||||
|
||||
}
|
||||
|
||||
int p3LinkMgrIMPL::getOnlineCount()
|
||||
{
|
||||
RsStackMutex stack(mLinkMtx); /****** STACK LOCK MUTEX *******/
|
||||
|
||||
int count = 0;
|
||||
|
||||
std::map<std::string, peerConnectState>::iterator it;
|
||||
for(it = mFriendList.begin(); it != mFriendList.end(); it++)
|
||||
{
|
||||
if (it->second.state & RS_PEER_S_CONNECTED)
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
return count;
|
||||
|
||||
}
|
||||
|
||||
bool p3LinkMgrIMPL::getFriendNetStatus(const std::string &id, peerConnectState &state)
|
||||
{
|
||||
RsStackMutex stack(mLinkMtx); /****** STACK LOCK MUTEX *******/
|
||||
|
|
|
@ -166,8 +166,6 @@ virtual struct sockaddr_in getLocalAddress() = 0;
|
|||
/************* DEPRECIATED FUNCTIONS (TO REMOVE) ********/
|
||||
|
||||
virtual void getFriendList(std::list<std::string> &ssl_peers) = 0; // ONLY used by p3peers.cc USE p3PeerMgr instead.
|
||||
virtual int getOnlineCount() = 0; // ONLY used by p3peers.cc
|
||||
virtual int getFriendCount() = 0; // ONLY used by p3serverconfig.cc & p3peers.cc
|
||||
virtual bool getFriendNetStatus(const std::string &id, peerConnectState &state) = 0; // ONLY used by p3peers.cc
|
||||
|
||||
virtual void setTunnelConnection(bool b) = 0; // ONLY used by p3peermgr.cc & p3peers.cc MOVE => p3PeerMgr
|
||||
|
@ -232,8 +230,6 @@ virtual void peerConnectRequest(std::string id, struct sockaddr_in raddr,
|
|||
/************* DEPRECIATED FUNCTIONS (TO REMOVE) ********/
|
||||
|
||||
virtual void getFriendList(std::list<std::string> &ssl_peers); // ONLY used by p3peers.cc USE p3PeerMgr instead.
|
||||
virtual int getOnlineCount(); // ONLY used by p3peers.cc
|
||||
virtual int getFriendCount(); // ONLY used by p3serverconfig.cc & p3peers.cc
|
||||
virtual bool getFriendNetStatus(const std::string &id, peerConnectState &state); // ONLY used by p3peers.cc
|
||||
|
||||
virtual void setTunnelConnection(bool b); // ONLY used by p3peermgr.cc & p3peers.cc MOVE => p3PeerMgr
|
||||
|
|
|
@ -275,6 +275,51 @@ uint32_t p3PeerMgrIMPL::getConnectionType(const std::string &/*sslId*/)
|
|||
return RS_NET_CONN_TYPE_FRIEND;
|
||||
}
|
||||
|
||||
int p3PeerMgrIMPL::getFriendCount(bool ssl, bool online)
|
||||
{
|
||||
if (online) {
|
||||
// count only online id's
|
||||
std::list<std::string> onlineIds;
|
||||
mLinkMgr->getOnlineList(onlineIds);
|
||||
|
||||
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
||||
|
||||
std::set<std::string> gpgIds;
|
||||
int count = 0;
|
||||
|
||||
std::map<std::string, peerState>::iterator it;
|
||||
for(it = mFriendList.begin(); it != mFriendList.end(); ++it) {
|
||||
if (online && std::find(onlineIds.begin(), onlineIds.end(), it->first) == onlineIds.end()) {
|
||||
continue;
|
||||
}
|
||||
if (ssl) {
|
||||
// count ssl id's only
|
||||
count++;
|
||||
} else {
|
||||
// count unique gpg id's
|
||||
gpgIds.insert(it->second.gpg_id);
|
||||
}
|
||||
}
|
||||
|
||||
return ssl ? count : gpgIds.size();
|
||||
}
|
||||
|
||||
if (ssl) {
|
||||
// count all ssl id's
|
||||
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
||||
return mFriendList.size();
|
||||
}
|
||||
|
||||
// count all gpg id's
|
||||
std::list<std::string> gpgIds;
|
||||
AuthGPG::getAuthGPG()->getGPGAcceptedList(gpgIds);
|
||||
|
||||
// add own gpg id, if we have more than one location
|
||||
std::list<std::string> ownSslIds;
|
||||
getAssociatedPeers(AuthGPG::getAuthGPG()->getGPGOwnId(), ownSslIds);
|
||||
|
||||
return gpgIds.size() + ((ownSslIds.size() > 0) ? 1 : 0);
|
||||
}
|
||||
|
||||
bool p3PeerMgrIMPL::getFriendNetStatus(const std::string &id, peerState &state)
|
||||
{
|
||||
|
|
|
@ -184,6 +184,7 @@ virtual bool getPeerName(const std::string &ssl_id, std::string &name) = 0;
|
|||
virtual bool getGpgId(const std::string &sslId, std::string &gpgId) = 0;
|
||||
virtual uint32_t getConnectionType(const std::string &sslId) = 0;
|
||||
|
||||
virtual int getFriendCount(bool ssl, bool online) = 0;
|
||||
|
||||
/************* DEPRECIATED FUNCTIONS (TO REMOVE) ********/
|
||||
|
||||
|
@ -270,6 +271,7 @@ virtual bool getPeerName(const std::string &ssl_id, std::string &name);
|
|||
virtual bool getGpgId(const std::string &sslId, std::string &gpgId);
|
||||
virtual uint32_t getConnectionType(const std::string &sslId);
|
||||
|
||||
virtual int getFriendCount(bool ssl, bool online);
|
||||
|
||||
/************* DEPRECIATED FUNCTIONS (TO REMOVE) ********/
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue