本文整理汇总了C++中TreeSocket::GetModHook方法的典型用法代码示例。如果您正苦于以下问题:C++ TreeSocket::GetModHook方法的具体用法?C++ TreeSocket::GetModHook怎么用?C++ TreeSocket::GetModHook使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TreeSocket
的用法示例。
在下文中一共展示了TreeSocket::GetModHook方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnUnloadModule
void ModuleSpanningTree::OnUnloadModule(Module* mod)
{
if (!Utils)
return;
ServerInstance->PI->SendMetaData("modules", "-" + mod->ModuleSourceFile);
if (mod == this)
{
// We are being unloaded, inform modules about all servers splitting which cannot be done later when the servers are actually disconnected
const server_hash& servers = Utils->serverlist;
for (server_hash::const_iterator i = servers.begin(); i != servers.end(); ++i)
{
TreeServer* server = i->second;
if (!server->IsRoot())
FOREACH_MOD_CUSTOM(GetEventProvider(), ServerEventListener, OnServerSplit, (server));
}
return;
}
// Some other module is being unloaded. If it provides an IOHook we use, we must close that server connection now.
restart:
// Close all connections which use an IO hook provided by this module
const TreeServer::ChildServers& list = Utils->TreeRoot->GetChildren();
for (TreeServer::ChildServers::const_iterator i = list.begin(); i != list.end(); ++i)
{
TreeSocket* sock = (*i)->GetSocket();
if (sock->GetModHook(mod))
{
sock->SendError("SSL module unloaded");
sock->Close();
// XXX: The list we're iterating is modified by TreeServer::SQuit() which is called by Close()
goto restart;
}
}
for (SpanningTreeUtilities::TimeoutList::const_iterator i = Utils->timeoutlist.begin(); i != Utils->timeoutlist.end(); ++i)
{
TreeSocket* sock = i->first;
if (sock->GetModHook(mod))
sock->Close();
}
}