bool RheiaLoggerManager::DeleteLogger(RheiaLogger* logger) { wxString name = GetLoggerName( logger ); if( name.IsEmpty() ) return false; return DeleteLogger( name ); }
void RheiaLoggerManager::OnUnregisterLogger(wxCommandEvent& event) { wxString name = event.GetString(); // Remove all loggers of the given type, this is due to prevent // loggers models from plugins dll unloading RheiaLogger* logger = GetFirstLoggerOf( name ); while( logger != NULL ) { DeleteLogger( logger ); logger = GetFirstLoggerOf( name ); } }
NPError WINAPI NP_Shutdown() { // should be safe because if they've already been called shutdown procs must be NULL if(epManager) epManager->callNP_ShutdownAll(); // this will log the action if(logger) { logger->shut(); logger->platformShut(); DeleteLogger(logger); logger = NULL; } delete epManager; return NPERR_NO_ERROR; }