* This function does not remove the channel from User::chanlist.
* Since the parameter is an iterator to the target, the complexity
* of this function is constant.
- * @param membiter The UserMembIter to remove, must be valid
+ * @param membiter The MemberMap iterator to remove, must be valid
*/
- void DelUser(const UserMembIter& membiter);
+ void DelUser(const MemberMap::iterator& membiter);
public:
/** Creates a channel record and initialises it with default values
* @param victimiter Iterator to the user being kicked, must be valid
* @param reason The reason for the kick
*/
- void KickUser(User* src, const UserMembIter& victimiter, const std::string& reason);
+ void KickUser(User* src, const MemberMap::iterator& victimiter, const std::string& reason);
/** Make src kick user from this channel with the given reason.
* @param src The source of the kick
*/
void KickUser(User* src, User* user, const std::string& reason)
{
- UserMembIter it = userlist.find(user);
+ MemberMap::iterator it = userlist.find(user);
if (it != userlist.end())
KickUser(src, it, reason);
}
/** Files read by the configuration */
typedef std::map<std::string, file_cache> ConfigFileCache;
-/** Membership list of a channel */
-typedef std::map<User*, Membership*> UserMembList;
-/** Iterator of UserMembList */
-typedef UserMembList::iterator UserMembIter;
-
/** Generic user list, used for exceptions */
typedef std::set<User*> CUList;
void Channel::DelUser(User* user)
{
- UserMembIter it = userlist.find(user);
+ MemberMap::iterator it = userlist.find(user);
if (it != userlist.end())
DelUser(it);
}
ServerInstance->GlobalCulls.AddItem(this);
}
-void Channel::DelUser(const UserMembIter& membiter)
+void Channel::DelUser(const MemberMap::iterator& membiter)
{
Membership* memb = membiter->second;
memb->cull();
Membership* Channel::GetUser(User* user)
{
- UserMembIter i = userlist.find(user);
+ MemberMap::iterator i = userlist.find(user);
if (i == userlist.end())
return NULL;
return i->second;
*/
void Channel::PartUser(User *user, std::string &reason)
{
- UserMembIter membiter = userlist.find(user);
+ MemberMap::iterator membiter = userlist.find(user);
if (membiter != userlist.end())
{
}
}
-void Channel::KickUser(User* src, const UserMembIter& victimiter, const std::string& reason)
+void Channel::KickUser(User* src, const MemberMap::iterator& victimiter, const std::string& reason)
{
Membership* memb = victimiter->second;
CUList except_list;
{
const std::string message = ":" + user->GetFullHost() + " " + text;
- for (UserMembIter i = userlist.begin(); i != userlist.end(); i++)
+ for (MemberMap::iterator i = userlist.begin(); i != userlist.end(); i++)
{
if (IS_LOCAL(i->first))
i->first->Write(message);
{
const std::string message = ":" + (ServName.empty() ? ServerInstance->Config->ServerName : ServName) + " " + text;
- for (UserMembIter i = userlist.begin(); i != userlist.end(); i++)
+ for (MemberMap::iterator i = userlist.begin(); i != userlist.end(); i++)
{
if (IS_LOCAL(i->first))
i->first->Write(message);
if (mh)
minrank = mh->GetPrefixRank();
}
- for (UserMembIter i = userlist.begin(); i != userlist.end(); i++)
+ for (MemberMap::iterator i = userlist.begin(); i != userlist.end(); i++)
{
if (IS_LOCAL(i->first) && (except_list.find(i->first) == except_list.end()))
{
const size_t maxlen = ServerInstance->Config->Limits.MaxLine - 10 - ServerInstance->Config->ServerName.size();
std::string prefixlist;
std::string nick;
- for (UserMembIter i = userlist.begin(); i != userlist.end(); ++i)
+ for (MemberMap::iterator i = userlist.begin(); i != userlist.end(); ++i)
{
if ((!has_user) && (i->first->IsModeSet(invisiblemode)) && (!has_privs))
{
unsigned int Channel::GetPrefixValue(User* user)
{
- UserMembIter m = userlist.find(user);
+ MemberMap::iterator m = userlist.find(user);
if (m == userlist.end())
return 0;
return m->second->getRank();
}
}
- const UserMembIter victimiter = c->userlist.find(u);
+ const Channel::MemberMap::iterator victimiter = c->userlist.find(u);
if (victimiter == c->userlist.end())
{
user->WriteNumeric(ERR_USERNOTINCHANNEL, "%s %s :They are not on that channel", u->nick.c_str(), c->name.c_str());
ServerInstance->Modes->Process(modes, ServerInstance->FakeClient);
}
Channel::MemberMap& users = c->userlist;
- for (UserMembIter j = users.begin(); j != users.end(); )
+ for (Channel::MemberMap::iterator j = users.begin(); j != users.end(); )
{
if (IS_LOCAL(j->first))
{
// KickUser invalidates the iterator
- UserMembIter it = j++;
+ Channel::MemberMap::iterator it = j++;
c->KickUser(ServerInstance->FakeClient, it, "Channel name no longer valid");
}
else
std::string mask;
// Now remove all local non-opers from the channel
Channel::MemberMap& users = chan->userlist;
- for (UserMembIter i = users.begin(); i != users.end(); )
+ for (Channel::MemberMap::iterator i = users.begin(); i != users.end(); )
{
User* curr = i->first;
- const UserMembIter currit = i;
+ const Channel::MemberMap::iterator currit = i;
++i;
if (!IS_LOCAL(curr) || curr->IsOper())