Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

127 lines
3.0 KiB

  1. // Copyright (c) 1997-2001 Microsoft Corporation
  2. //
  3. // File: InstallationUnitProvider.h
  4. //
  5. // Synopsis: Declares an InstallationUnitProvider
  6. // An InstallationUnitProvider manages the global
  7. // InstallationUnits for each service that can be
  8. // installed.
  9. //
  10. // History: 02/05/2001 JeffJon Created
  11. #ifndef __CYS_INSTALLATIONUNITPROVIDER_H
  12. #define __CYS_INSTALLATIONUNITPROVIDER_H
  13. #include "InstallationUnit.h"
  14. #include "DHCPInstallationUnit.h"
  15. #include "DNSInstallationUnit.h"
  16. #include "WINSInstallationUnit.h"
  17. #include "RRASInstallationUnit.h"
  18. #include "NetworkServerInstallationUnit.h"
  19. #include "ApplicationInstallationUnit.h"
  20. #include "FileInstallationUnit.h"
  21. #include "PrintInstallationUnit.h"
  22. #include "SharePointInstallationUnit.h"
  23. #include "MediaInstallationUnit.h"
  24. #include "WebInstallationUnit.h"
  25. #include "ExpressInstallationUnit.h"
  26. #include "ADInstallationUnit.h"
  27. #include "ClusterInstallationUnit.h"
  28. typedef std::map<InstallationUnitType, InstallationUnit*> InstallationUnitContainerType;
  29. class InstallationUnitProvider
  30. {
  31. public:
  32. static
  33. InstallationUnitProvider&
  34. GetInstance();
  35. static
  36. void
  37. Destroy();
  38. InstallationUnit&
  39. GetCurrentInstallationUnit();
  40. void
  41. SetCurrentInstallationUnit(InstallationUnitType installationUnitType);
  42. InstallationUnit&
  43. GetInstallationUnitForType(InstallationUnitType installationUnitType);
  44. DHCPInstallationUnit&
  45. GetDHCPInstallationUnit();
  46. DNSInstallationUnit&
  47. GetDNSInstallationUnit();
  48. WINSInstallationUnit&
  49. GetWINSInstallationUnit();
  50. RRASInstallationUnit&
  51. GetRRASInstallationUnit();
  52. NetworkServerInstallationUnit&
  53. GetNetworkServerInstallationUnit();
  54. ApplicationInstallationUnit&
  55. GetApplicationInstallationUnit();
  56. FileInstallationUnit&
  57. GetFileInstallationUnit();
  58. PrintInstallationUnit&
  59. GetPrintInstallationUnit();
  60. SharePointInstallationUnit&
  61. GetSharePointInstallationUnit();
  62. MediaInstallationUnit&
  63. GetMediaInstallationUnit();
  64. WebInstallationUnit&
  65. GetWebInstallationUnit();
  66. ExpressInstallationUnit&
  67. GetExpressInstallationUnit();
  68. ADInstallationUnit&
  69. GetADInstallationUnit();
  70. ClusterInstallationUnit&
  71. GetClusterInstallationUnit();
  72. private:
  73. // Constructor
  74. InstallationUnitProvider();
  75. // Destructor
  76. ~InstallationUnitProvider();
  77. void
  78. Init();
  79. // The current installation unit
  80. InstallationUnit* currentInstallationUnit;
  81. // Container for installation units. The map is keyed
  82. // by the InstallationUnitType enum
  83. InstallationUnitContainerType installationUnitContainer;
  84. bool initialized;
  85. // not defined: no copying allowed
  86. InstallationUnitProvider(const InstallationUnitProvider&);
  87. const InstallationUnitProvider& operator=(const InstallationUnitProvider&);
  88. };
  89. #endif // __CYS_INSTALLATIONUNITPROVIDER_H