Пример #1
0
void CHList::DeleteObject( void *node )
{
	if ( node == NULL ) return;
	RemoveHash( (LPLLISTINFO)node );

	CLList::DeleteObject( node );
}
Пример #2
0
const void* CHList::SetKey(void *ptr, const void *pKey, DWORD dwKeySize)
{
	LPLLISTINFO pli = (LPLLISTINFO)ptr;
	if ( pli == NULL ) return pKey;

	// Remove from hash table
	RemoveHash( pli );

	// Set the new key
	CLList::SetKey( ptr, pKey, dwKeySize );

	// Set the new hash
	AddHash( pli );

	return pKey;
}
Пример #3
0
void TreeServer::SQuitInternal(unsigned int& num_lost_servers)
{
	ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Server %s lost in split", GetName().c_str());

	for (ChildServers::const_iterator i = Children.begin(); i != Children.end(); ++i)
	{
		TreeServer* server = *i;
		server->SQuitInternal(num_lost_servers);
	}

	// Mark server as dead
	isdead = true;
	num_lost_servers++;
	RemoveHash();

	if (!Utils->Creator->dying)
		FOREACH_MOD_CUSTOM(Utils->Creator->GetEventProvider(), SpanningTreeEventListener, OnServerSplit, (this));
}