BaseManager.cs 1.5 KB

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