BaseManager.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using MediaBrowser.Common.Logging;
  2. using MediaBrowser.Model.Logging;
  3. using System;
  4. namespace MediaBrowser.Common.Kernel
  5. {
  6. /// <summary>
  7. /// Class BaseManager
  8. /// </summary>
  9. /// <typeparam name="TKernelType">The type of the T kernel type.</typeparam>
  10. public abstract class BaseManager<TKernelType> : IDisposable
  11. where TKernelType : IKernel
  12. {
  13. /// <summary>
  14. /// Gets the logger.
  15. /// </summary>
  16. /// <value>The logger.</value>
  17. protected ILogger Logger { get; private set; }
  18. /// <summary>
  19. /// The _kernel
  20. /// </summary>
  21. protected readonly TKernelType Kernel;
  22. /// <summary>
  23. /// Initializes a new instance of the <see cref="BaseManager" /> class.
  24. /// </summary>
  25. /// <param name="kernel">The kernel.</param>
  26. /// <exception cref="System.ArgumentNullException">kernel</exception>
  27. protected BaseManager(TKernelType kernel)
  28. {
  29. if (kernel == null)
  30. {
  31. throw new ArgumentNullException("kernel");
  32. }
  33. Kernel = kernel;
  34. Logger = LogManager.GetLogger(GetType().Name);
  35. Logger.Info("Initializing");
  36. }
  37. /// <summary>
  38. /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
  39. /// </summary>
  40. public void Dispose()
  41. {
  42. Logger.Info("Disposing");
  43. Dispose(true);
  44. GC.SuppressFinalize(this);
  45. }
  46. /// <summary>
  47. /// Releases unmanaged and - optionally - managed resources.
  48. /// </summary>
  49. /// <param name="dispose"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
  50. protected virtual void Dispose(bool dispose)
  51. {
  52. }
  53. }
  54. }