windows-nt/Source/XPSP1/NT/admin/cys/win32/installationunitprovider.h
2020-09-26 16:20:57 +08:00

128 lines
3 KiB
C++

// Copyright (c) 1997-2001 Microsoft Corporation
//
// File: InstallationUnitProvider.h
//
// Synopsis: Declares an InstallationUnitProvider
// An InstallationUnitProvider manages the global
// InstallationUnits for each service that can be
// installed.
//
// History: 02/05/2001 JeffJon Created
#ifndef __CYS_INSTALLATIONUNITPROVIDER_H
#define __CYS_INSTALLATIONUNITPROVIDER_H
#include "InstallationUnit.h"
#include "DHCPInstallationUnit.h"
#include "DNSInstallationUnit.h"
#include "WINSInstallationUnit.h"
#include "RRASInstallationUnit.h"
#include "NetworkServerInstallationUnit.h"
#include "ApplicationInstallationUnit.h"
#include "FileInstallationUnit.h"
#include "PrintInstallationUnit.h"
#include "SharePointInstallationUnit.h"
#include "MediaInstallationUnit.h"
#include "WebInstallationUnit.h"
#include "ExpressInstallationUnit.h"
#include "ADInstallationUnit.h"
#include "ClusterInstallationUnit.h"
typedef std::map<InstallationUnitType, InstallationUnit*> InstallationUnitContainerType;
class InstallationUnitProvider
{
public:
static
InstallationUnitProvider&
GetInstance();
static
void
Destroy();
InstallationUnit&
GetCurrentInstallationUnit();
void
SetCurrentInstallationUnit(InstallationUnitType installationUnitType);
InstallationUnit&
GetInstallationUnitForType(InstallationUnitType installationUnitType);
DHCPInstallationUnit&
GetDHCPInstallationUnit();
DNSInstallationUnit&
GetDNSInstallationUnit();
WINSInstallationUnit&
GetWINSInstallationUnit();
RRASInstallationUnit&
GetRRASInstallationUnit();
NetworkServerInstallationUnit&
GetNetworkServerInstallationUnit();
ApplicationInstallationUnit&
GetApplicationInstallationUnit();
FileInstallationUnit&
GetFileInstallationUnit();
PrintInstallationUnit&
GetPrintInstallationUnit();
SharePointInstallationUnit&
GetSharePointInstallationUnit();
MediaInstallationUnit&
GetMediaInstallationUnit();
WebInstallationUnit&
GetWebInstallationUnit();
ExpressInstallationUnit&
GetExpressInstallationUnit();
ADInstallationUnit&
GetADInstallationUnit();
ClusterInstallationUnit&
GetClusterInstallationUnit();
private:
// Constructor
InstallationUnitProvider();
// Destructor
~InstallationUnitProvider();
void
Init();
// The current installation unit
InstallationUnit* currentInstallationUnit;
// Container for installation units. The map is keyed
// by the InstallationUnitType enum
InstallationUnitContainerType installationUnitContainer;
bool initialized;
// not defined: no copying allowed
InstallationUnitProvider(const InstallationUnitProvider&);
const InstallationUnitProvider& operator=(const InstallationUnitProvider&);
};
#endif // __CYS_INSTALLATIONUNITPROVIDER_H