Exemple #1
0
void ClientManager::addRemoteClient(sid_type sid, UserInfo const& ui) throw()
{
	assert(!hasClient(sid) || remoteUsers.count(sid));
	if(!remoteUsers.count(sid))
		remoteUsers[sid] = new UserInfo(Command('B', Command::INF, sid));
	if(ui.has("ID") && remoteUsers[sid]->has("ID")) {
		cids.erase(remoteUsers[sid]->getCID());
		cids.insert(ui.getCID());
	}
	if(ui.has("NI") && remoteUsers[sid]->has("NI")) {
		nicks.erase(remoteUsers[sid]->getNick());
		nicks.insert(ui.getNick());
	}
	remoteUsers[sid]->update(ui);
}
Exemple #2
0
void ClientManager::userUpdated(sid_type sid, UserInfo const& ui) throw()
{
	LocalUsers::iterator i = localUsers.find(sid);
	if(i == localUsers.end())
		assert(0); // maybe use this for remote later, but now...

	const string& oldNick = i->second->getUserInfo()->getNick();
	const string& newNick = ui.getNick();
	if(ui.has("NI")) {
		nicks.erase(oldNick);
		nicks.insert(newNick);
	}
	// CID can't change, nothing else to do
}