string AdcCommand::getHeaderString(const CID& cid) const { dcassert(type == TYPE_UDP); string tmp; tmp += getType(); tmp += cmdChar; tmp += ' '; tmp += cid.toBase32(); return tmp; }
StringList ClientManager::getNicks(const CID& cid) const { Lock l(cs); StringSet nicks; OnlinePairC op = onlineUsers.equal_range(cid); for(OnlineIterC i = op.first; i != op.second; ++i) { nicks.insert(i->second->getIdentity().getNick()); } if(nicks.empty()) { // Offline perhaps? UserMap::const_iterator i = users.find(cid); if(i != users.end() && !i->second->getFirstNick().empty()) { nicks.insert(i->second->getFirstNick()); } else { nicks.insert('{' + cid.toBase32() + '}'); } } return StringList(nicks.begin(), nicks.end()); }
string ClientManager::getOfflineNick(const CID& cid) const { auto i = nicks.find(cid); return i != nicks.end() ? i->second.first : '{' + cid.toBase32() + '}'; }