PageRenderTime 40ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 1ms

/src/NUnit/util/Services/AddinRegistry.cs

#
C# | 81 lines | 61 code | 12 blank | 8 comment | 5 complexity | e9487fbb1905f53946ad6badf05229a5 MD5 | raw file
Possible License(s): GPL-2.0
  1. // ****************************************************************
  2. // Copyright 2007, Charlie Poole
  3. // This is free software licensed under the NUnit license. You may
  4. // obtain a copy of the license at http://nunit.org
  5. // ****************************************************************
  6. using System;
  7. using System.Collections;
  8. using System.Reflection;
  9. using NUnit.Core;
  10. using NUnit.Core.Extensibility;
  11. namespace NUnit.Util
  12. {
  13. /// <summary>
  14. /// Summary description for AddinRegistry.
  15. /// </summary>
  16. public class AddinRegistry : MarshalByRefObject, IAddinRegistry, IService
  17. {
  18. #region Instance Fields
  19. private ArrayList addins = new ArrayList();
  20. #endregion
  21. #region IAddinRegistry Members
  22. public void Register(Addin addin)
  23. {
  24. addins.Add( addin );
  25. }
  26. public IList Addins
  27. {
  28. get
  29. {
  30. return addins;
  31. }
  32. }
  33. public bool IsAddinRegistered(string name)
  34. {
  35. return FindAddinByName(name) != null;
  36. }
  37. public void SetStatus( string name, AddinStatus status, string message )
  38. {
  39. Addin addin = FindAddinByName(name);
  40. if (addin != null)
  41. {
  42. addin.Status = status;
  43. addin.Message = message;
  44. }
  45. }
  46. private Addin FindAddinByName(string name)
  47. {
  48. foreach (Addin addin in addins)
  49. if (addin.Name == name)
  50. return addin;
  51. return null;
  52. }
  53. #endregion
  54. #region IService Members
  55. public void InitializeService()
  56. {
  57. }
  58. public void UnloadService()
  59. {
  60. }
  61. #endregion
  62. #region InitializeLifetimeService
  63. public override object InitializeLifetimeService()
  64. {
  65. return null;
  66. }
  67. #endregion
  68. }
  69. }