本文整理汇总了C++中XLine::Matches方法的典型用法代码示例。如果您正苦于以下问题:C++ XLine::Matches方法的具体用法?C++ XLine::Matches怎么用?C++ XLine::Matches使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XLine
的用法示例。
在下文中一共展示了XLine::Matches方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CheckELines
/*
* Checks what users match a given vector of ELines and sets their ban exempt flag accordingly.
*/
void XLineManager::CheckELines()
{
ContainerIter n = lookup_lines.find("E");
if (n == lookup_lines.end())
return;
XLineLookup& ELines = n->second;
if (ELines.empty())
return;
for (LocalUserList::const_iterator u2 = ServerInstance->Users->local_users.begin(); u2 != ServerInstance->Users->local_users.end(); u2++)
{
LocalUser* u = *u2;
/* This uses safe iteration to ensure that if a line expires here, it doenst trash the iterator */
LookupIter safei;
for (LookupIter i = ELines.begin(); i != ELines.end(); )
{
safei = i;
safei++;
XLine *e = i->second;
u->exempt = e->Matches(u);
i = safei;
}
}
}
示例2: ApplyLines
// applies lines, removing clients and changing nicks etc as applicable
void XLineManager::ApplyLines()
{
LocalUserList::reverse_iterator u2 = ServerInstance->Users->local_users.rbegin();
while (u2 != ServerInstance->Users->local_users.rend())
{
LocalUser* u = *u2++;
// Don't ban people who are exempt.
if (u->exempt)
continue;
for (std::vector<XLine *>::iterator i = pending_lines.begin(); i != pending_lines.end(); i++)
{
XLine *x = *i;
if (x->Matches(u))
x->Apply(u);
}
}
pending_lines.clear();
}