Пример #1
0
UserPtr ClientManager::getUser(const string& aNick, const string& aHubUrl) noexcept {
	CID cid = makeCid(aNick, aHubUrl);
	Lock l(cs);

	auto ui = users.find(cid);
	if(ui != users.end()) {
		ui->second->setFlag(User::NMDC);
		return ui->second;
	}

	UserPtr p(new User(cid));
	p->setFlag(User::NMDC);
	users.emplace(cid, p);

	return p;
}
Пример #2
0
User::Ptr ClientManager::getUser(const string& aNick, const string& aHubUrl) throw() {
	CID cid = makeCid(aNick, aHubUrl);
	Lock l(cs);

	UserIter ui = users.find(cid);
	if(ui != users.end()) {
		if(ui->second->getFirstNick().empty())
			ui->second->setFirstNick(aNick);
		ui->second->setFlag(User::NMDC);
		return ui->second;
	}

	User::Ptr p(new User(cid));
	p->setFirstNick(aNick);
	p->setFlag(User::NMDC);
	users.insert(make_pair(cid, p));

	return p;
}