PrivateChat* MessageManager::addChat(const HintedUser& user) { WLock l(cs); auto p = new PrivateChat(user, getPMConn(user.user)); chats.emplace(user.user, p).first->second; return p; }
PrivateChatPtr MessageManager::addChat(const HintedUser& user, bool aReceivedMessage) noexcept { if (getChat(user.user)) { return nullptr; } PrivateChatPtr chat; { WLock l(cs); chat = make_shared<PrivateChat>(user, getPMConn(user.user)); chats.emplace(user.user, chat); } fire(MessageManagerListener::ChatCreated(), chat, aReceivedMessage); return chat; }