From 351f050dd77c7dfae7ab901b9dab08336e59b4fc Mon Sep 17 00:00:00 2001 From: Guillaume Melquiond Date: Tue, 23 May 2006 05:35:13 +0000 Subject: Split server into three logical servers: an account server, a chat server, and a game server. --- src/chatchannel.cpp | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) (limited to 'src/chatchannel.cpp') diff --git a/src/chatchannel.cpp b/src/chatchannel.cpp index ce1f6967..49301474 100644 --- a/src/chatchannel.cpp +++ b/src/chatchannel.cpp @@ -85,40 +85,30 @@ ChatChannel::setPassword(const std::string &channelPassword) mChannelPassword = channelPassword; } -std::vector -ChatChannel::getUserList() const +ChatChannel::ChannelUsers const &ChatChannel::getUserList() const { return mRegisteredUsers; } -bool -ChatChannel::addUserInChannel(tmwserv::BeingPtr beingPtr) +bool ChatChannel::addUserInChannel(std::string const &user) { // Check if the user already exists in the channel - for (std::vector::iterator i = mRegisteredUsers.begin(); i != mRegisteredUsers.end();) - { - if ( i->get() == beingPtr.get() ) return false; - ++i; - } - mRegisteredUsers.push_back(beingPtr); + ChannelUsers::const_iterator i = mRegisteredUsers.begin(), + i_end = mRegisteredUsers.end(); + if (std::find(i, i_end, user) == i_end) return false; + mRegisteredUsers.push_back(user); return true; } -bool -ChatChannel::removeUserFromChannel(tmwserv::BeingPtr beingPtr) +bool ChatChannel::removeUserFromChannel(std::string const &user) { - for (std::vector::iterator i = mRegisteredUsers.begin(); i != mRegisteredUsers.end();) - { - if ( i->get() == beingPtr.get() ) - { - mRegisteredUsers.erase(i); - return true; - } - ++i; - } - return false; + ChannelUsers::iterator i_end = mRegisteredUsers.end(), + i = std::find(mRegisteredUsers.begin(), i_end, user); + if (i == i_end) return false; + mRegisteredUsers.erase(i); + return true; } void ChatChannel::removeEveryUsersFromChannel() -- cgit v1.2.3-70-g09d2