You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by ni...@apache.org on 2004/06/02 18:17:09 UTC
cvs commit: logging-log4net/src/Core WrapperMap.cs
nicko 2004/06/02 09:17:09
Modified: src/Core WrapperMap.cs
Log:
Made the ILoggerRepository Shutdown event handler delegate method private. Added a new overridable method RepositoryShutdown.
Revision Changes Path
1.4 +21 -11 logging-log4net/src/Core/WrapperMap.cs
Index: WrapperMap.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/WrapperMap.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- WrapperMap.cs 23 Feb 2004 03:18:03 -0000 1.3
+++ WrapperMap.cs 2 Jun 2004 16:17:09 -0000 1.4
@@ -59,7 +59,7 @@
m_createWrapperHandler = createWrapperHandler;
// Create the delegates for the event callbacks
- m_shutdownHandler = new LoggerRepositoryShutdownEventHandler(OnShutdown);
+ m_shutdownHandler = new LoggerRepositoryShutdownEventHandler(ILoggerRepository_Shutdown);
}
#endregion Public Instance Constructors
@@ -160,22 +160,32 @@
}
/// <summary>
+ /// Called when a monitored repository shutdown event is received.
+ /// </summary>
+ /// <param name="repository">The <see cref="ILoggerRepository"/> that is shutting down</param>
+ virtual protected void RepositoryShutdown(ILoggerRepository repository)
+ {
+ lock(this)
+ {
+ // Remove all repository from map
+ m_repositories.Remove(repository);
+
+ // Unhook all events from the repository
+ repository.ShutdownEvent -= m_shutdownHandler;
+ }
+ }
+
+ /// <summary>
/// Event handler for repository shutdown event.
/// </summary>
/// <param name="sender">The sender of the event.</param>
/// <param name="e">The event args.</param>
- virtual protected void OnShutdown(object sender, EventArgs e)
+ private void ILoggerRepository_Shutdown(object sender, EventArgs e)
{
- lock(this)
+ if (sender is ILoggerRepository)
{
- if (sender is ILoggerRepository)
- {
- // Remove all repository from map
- m_repositories.Remove(sender);
-
- // Unhook all events from the repository
- ((ILoggerRepository)sender).ShutdownEvent -= m_shutdownHandler;
- }
+ // Remove all repository from map
+ RepositoryShutdown((ILoggerRepository)sender);
}
}